mysql:7931
From: Shinya Kawaji <Shinya Kawaji <kawaji@xxxxxxxxxx>>
Date: Sat, 21 Jun 2003 14:38:44 +0900
Subject: [mysql 07931] Re: SELECT 文の Where 句について
かわじ、です。 > 早速ですが、商品名とフリガナ(全角カナ)というフィールドを持つテーブル > があったとします。 > このテーブルよりSelect文を発行して例えば「ア行」で始まる商品一覧を > 取得したいのですが、この際のSelect文の記述方法が判りません。 > > データベースがSQLServerですと、下記の記述で出来ます。 > > Select 商品名 From TableName Where フリガナ Like "[ア-オ]%" REGEXP が使えれば良いんですけどね。 mysql> select "アカ" REGEXP "^[ア-オ]"; +--------------------------+ | "アカ" REGEXP "^[ア-オ]" | +--------------------------+ | 1 | +--------------------------+ 1 row in set (0.00 sec) mysql> select "カオ" REGEXP "^[ア-オ]"; +--------------------------+ | "カオ" REGEXP "^[ア-オ]" | +--------------------------+ | 1 | +--------------------------+ 1 row in set (0.00 sec) 私の使っている 3.23.52 では、上記のように効きませんでした(ア行以外の カタカナもマッチする)。 以下に対応していない旨が書かれていますが、最新のバージョンでもそうですか ね?(すみません、知らなくて)。 http://www.tmtm.org/ja/mysql/japanese.html あんまり汎用性はありませんが、本当に「最初の文字」だけで良いのであれば、 以下のような方法もあります。 mysql> select ord("アカ") between ord("ア") and ord("オ"); +---------------------------------------------+ | ord("アカ") between ord("ア") and ord("オ") | +---------------------------------------------+ | 1 | +---------------------------------------------+ 1 row in set (0.00 sec) mysql> select ord("カオ") between ord("ア") and ord("オ"); +---------------------------------------------+ | ord("カオ") between ord("ア") and ord("オ") | +---------------------------------------------+ | 0 | +---------------------------------------------+ 1 row in set (0.00 sec)
7930 2003-06-21 13:59 [Masaomi Morofushi <m] SELECT 文の Where 句について -> 7931 2003-06-21 14:38 ┣[Shinya Kawaji <kawaj] 7933 2003-06-21 16:23 ┗["Y.Mizushima" <herlo]