解決済み

MySQLで特定のヒラガナ以降のレコードを選択した

  • 困ってます
  • 質問No.7931421
  • 閲覧数71
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 84% (70/83)

Windows版のMySQL v5.5.27です。

電話帳アプリを考えていますが、氏名、ヒラガナ、電話番号などなどのフィールドがあります。
そこでヒラガナが「か」から始まるレコードを選択したいと思っていますが、SELECT文が思いつかないのでご教授願います。
特に「か」だけではなく あ・か・さ・た・・・ というレコードを選択です。

単純に「あ」、「か」、「さ」・・・と選択して蓄積しても良いのですがスマートなSELECTを書きたいと思って質問しました。

質問者が選んだベストアンサー

  • 回答No.1

ベストアンサー率 45% (45/99)

ぱっと思いつくのは where hurigana like "あ%"
でも、性能を気にするならばあまりこれはよくないでしょう。

> 単純に「あ」、「か」、「さ」・・・と選択して蓄積しても良いのですが
>
これは、頭文字用のカラムを作るということでしょうか。
でしたら、それが良いと思いますよ。
プログラムでの登録時の処理や該当テーブルの構成を変えたくないのであれば、
頭文字用のテーブルを作るのはどうでしょう。
triggerと文字列関数のleftを使えば、フリガナから頭1文字をとって頭文字テーブルに
データ登録することはmysqlだけでできます。
(マルチバイトのためleftよりsubstringの方が良いかもしれません)
お礼コメント
gtx456gtx

お礼率 84% (70/83)

インデックスとして「あ」、「か」、「さ」・・・を考えています。

>triggerと文字列関数のleftを使えば、フリガナから頭1文字をとって
>頭文字テーブルにデータ登録することはmysqlだけでできます。
トリガーですか! トリガーを殆ど使ったことがないので、SELECTだけで解決しようと思っていましたが、確かに登録と同時に「頭文字用のテーブル」は良いですね。

これを機会にトリガーも使えるように頑張ってみます。 ありがとうございました。
投稿日時 - 2013-02-06 18:48:40

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 33% (4/12)

> 特に「か」だけではなく あ・か・さ・た・・・ というレコードを選択です。

> 単純に「あ」、「か」、「さ」・・・と選択して蓄積しても良いのですがスマートなSELECTを書きたいと思って質問しました。

このあたりがよくわかりませんが普通に
select * from xxxx where ヒラガナ like 'か%'ではだめですか?
お礼コメント
gtx456gtx

お礼率 84% (70/83)

表現が未熟で申し訳ありません。

インデックスとして「あ」、「か」、「さ」・・・という意味で、
>このあたりがよくわかりませんが普通に
>select * from xxxx where ヒラガナ like 'か%'ではだめですか?
素直に考えて、アドバイスを頂いた原案はあるのですが、それ以外の良いアイデアがあればと思って質問しました。

アドバイス ありがとうございます。
投稿日時 - 2013-02-06 18:52:31
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

ピックアップ

ページ先頭へ