[解決済み] 特定のフィールドの値から順に並べる
2022-07-12 01:32:11
質問
3列のテーブルがあります。
id | name | priority
--------------------
1 | core | 10
2 | core | 9
3 | other | 8
4 | board | 7
5 | board | 6
6 | core | 4
結果セットを
priority
を使って並べたいのですが、まずこれらの行のうち
name=core
を持つ行を優先します。結果は次のようになります。
id | name | priority
--------------------
6 | core | 4
2 | core | 9
1 | core | 10
5 | board | 6
4 | board | 7
3 | other | 8
どのように解決するのですか?
また
MySQL
FIELD
機能
.
可能なすべての値に対して完全なソートを行いたい場合。
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")
もし、"core"が最初にあることだけを気にして、他の値は重要でないのであれば。
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC
最初に "core" でソートし、他のフィールドは通常のソート順でソートしたい場合。
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority
ただし、ここにはいくつかの注意点があります。
まず、これはmysqlだけの機能であることは間違いありません - 質問にはmysqlのタグが付いていますが、わからないでしょう。
第二に、どのように
FIELD()
の動作に注目してください。
1ベースインデックス
を返します。
FIELD(priority, "core")
の場合、quot;core" が値であれば1を返す。 フィールドの値がリストにない場合、それは
ゼロ
. このため
DESC
が必要なのは、可能な限りの値を指定しないためです。
関連
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
[解決済み】マルチパート識別子をバインドできませんでした。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] 各GROUP BYグループの最初の行を選択しますか?
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLで複数のカラムに一意制約を指定するには?
-
[解決済み] 最初の行への結合方法
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
MySQLにおけるorder byの使用方法の詳細
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
MySql認証ベースのvsftpd仮想ユーザー
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
[解決済み】マルチパート識別子をバインドできない
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
mysql がエラーを報告します。不明な文字セットです。'utf8mb4'
-
[解決済み] INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOINの違いは何ですか?[重複しています]。
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法