[解決済み] MySQL - IN() 内の ORDER BY 値
2022-09-14 04:42:05
質問
次のクエリで返される項目を、次のような方法で並べ替えたいと思っています。 IN()関数に入力された順序で並べ替えたいのです。 .
INPUTです。
SELECT id, name FROM mytable WHERE name IN ('B', 'A', 'D', 'E', 'C');
OUTPUTです。
| id | name |
^--------^---------^
| 5 | B |
| 6 | B |
| 1 | D |
| 15 | E |
| 17 | E |
| 9 | C |
| 18 | C |
何かアイデアはありますか?
どのように解決するのですか?
SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')
この フィールド 関数は、残りの文字列のリストにおける最初の文字列の位置を返します。
しかし、ソート順を表すインデックス付きのカラムを用意し、このカラムでソートする方がパフォーマンス的にずっと優れています。
関連
-
mysqlでインデックスに障害が発生する原因は何ですか?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] MySQLで重複する値を検索する
-
[解決済み】MySQLとGROUP_CONCAT()の最大長について
-
[解決済み] MySQL order by before group by
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン