Entries


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

-件のコメント

コメントの投稿

新規

※設定NGワードは『http』です

投稿した内容は管理者にだけ閲覧出来ます

-件のトラックバック

トラックバックURL
http://pugiemonn.blog6.fc2.com/tb.php/1138-8ed7f609

mysql:ひらがなのカラムをあ行やか行のみ五十音でselectする


情報系のサイトで情報をひらがなの五十音で振り分け,『あ行の情報』『か行の情報』のようにカテゴライズされているものがあります.そういう振り分けはどうやってやってるんだろうと思っていたんですけど,sqlを使って簡単に実現できるみたいです.

最初にテスト用のtestsテーブルを生成するためのsqlを書きます.

テーブルの中身はidとtextだけです.titleカラムからあ行だけをselectしてみます.

まずはWHERE INを使う方です.LEFTをつけて一番左の文字を判定します.

次はREGEXPを使用し正規表現で書く方法です.^をつければ文頭の文字を検索できます.

作ったtestsテーブルに上記のsqlを流すとどちらも同じ結果がでます.

結果
mysql> SELECT * FROM tests WHERE LEFT(title,1) IN ('あ', 'い', 'う', 'え', 'お');
+------+----------+
| id | title |
+------+----------+
| 4 | あおもり |
| 5 | おかやま |
| 6 | えひめ |
+------+----------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM tests WHERE title REGEXP '^あ|^い|^う|^え|^お';
+------+----------+
| id | title |
+------+----------+
| 4 | あおもり |
| 5 | おかやま |
| 6 | えひめ |
+------+----------+
3 rows in set (0.00 sec)

ちゃんとあ行だけをselectできました.

ただし結果があいうえお順でちゃんと並んでいません.並べ替えるには後ろにorder byをつけてあげればちゃんとあいうえお順でソートされた結果が表示できます.

こんな感じです.
mysql> SELECT * FROM tests WHERE title REGEXP '^あ|^い|^う|^え|^お' ORDER BY title;
+------+----------+
| id | title |
+------+----------+
| 4 | あおもり |
| 6 | えひめ |
| 5 | おかやま |
+------+----------+
3 rows in set (0.00 sec)

今度は先ほどとは異なり『えひめ』が『おかやま』より前に表示されています.

やっぱりmysqlは便利にできてますね.

0件のコメント

コメントの投稿

新規

※設定NGワードは『http』です

投稿した内容は管理者にだけ閲覧出来ます

0件のトラックバック

トラックバックURL
http://pugiemonn.blog6.fc2.com/tb.php/1138-8ed7f609

Appendix

プロフィール

川崎修

  • Author:川崎修
  • インターネット大好き!
    調布周辺で自宅警備してます



    メール:pugiemonn@gmail.com
    skype:pugiemonn
    twilog:Twilog
    mixi:mixi
    facebook:facebook
My Profile by iddy
FC2ブログ

カレンダー

05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

最近の記事

Twitter

コミュニティ

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

Adsense

月別アーカイブ

はてぶ数

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。