さて、インデックス付きのキーとインデックスなしのフィールドを持つテーブルがあります。特定の値を持つすべてのレコードを検索して行を返す必要があります。複数の値で注文できるかどうか知りたいのですが。
例:
id x_field
-- -----
123 a
124 a
125 a
126 b
127 f
128 b
129 a
130 x
131 x
132 b
133 p
134 p
135 i
疑似:結果をこのように並べ替えたい where ORDER BY x_field = 'f', 'p', 'i', 'a'
SELECT *
FROM table
WHERE id NOT IN (126)
ORDER BY x_field 'f', 'p', 'i', 'a'
したがって、結果は次のようになります。
id x_field
-- -----
127 f
133 p
134 p
135 i
123 a
124 a
125 a
129 a
構文は有効ですが、クエリを実行しても、1レコードに制限しても、結果が返されることはありません。これについて別の方法がありますか?
x_fieldをテスト結果と考えて、条件に該当するすべてのレコードを検証する必要があります。失敗した値、渡された値でテスト結果を並べたいと思いました。したがって、最初に失敗した値を検証し、次にORDER BYを使用して渡された値を検証できます。
私ができないこと:
- 特定のレコード値を返す必要があるため、GROUP BY
- WHERE x_field IN( 'f'、 'p'、 'i'、 'a')、いくつかの検証テストに1つのクエリを使用しようとしているので、すべての値が必要です。また、x_field値はDESC / ASC順ではありません
この質問を書いた後、私はこれを再考する必要があると思い始めています、LOL!