sutara_lumpur回答ポイント 100ptウォッチ 1

SQLで、ある文字列を含むレコードを取得します。

ただし、文字列の先頭からマッチするものを優先させたいのです。
1回のSQLでできるでしょうか?

通常、
『SELECT * FROM hoge WHERE name LIKE '%w%' ORDER BY name ASC;』
と入力すると、
『arrow, now, snow, wake, world』
のような順番になります。
しかし、そうではなく、
『wake, world, arrow, now, snow』
のように、まず文字列の頭からヒットするものを優先したいのです。

つまり、
『WHERE name LIKE 'w%' ORDER BY name ASC』と
『WHERE name LIKE '%w%' AND name NOT LIKE 'w%' ORDER BY name ASC』
の結果を、混ぜ合わせるのではなく、前後につなぎ合わせたいのです。

MySQL、またはSQLiteにおいて、どのような方法を採ればいいでしょうか?
なるべく1文のSQLで行いたいのですが…。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2009-10-31 11:57:55
終了日時
2009-10-31 16:28:58
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

MySQL2612SQLite118SQL1319hoge915ASC24レコード916

人気の質問

メニュー

PC版