前のスレッドで複数の行について質問しましたが、今は単一の行について知る必要があります。これはクエリの例です。
SELECT * FROM table1 WHERE this = 5 LIMIT 1
しかし、行が見つからない場合は、別の値を持つレコードを見つけます。
SELECT * FROM table1 WHERE this = 1 LIMIT 1
だから私が欲しいのは、値が5の行を見つけて、見つからない場合はデフォルトで値が1の行を見つけることです。単一のクエリでそれを行うにはどうすればよいですか? ORステートメントはそのように機能しますか?
SELECT * FROM table1 WHERE this = 5 OR this = 1 LIMIT 1
OR ステートメントの順序は、値が 5 の行を見つけようとしますか?見つかった場合、停止して行を返しますか? 見つからない場合は、1 を探してその行を返しますか? そうでない場合、1 つの値を検索する単一のクエリでこれを行うにはどうすればよいですか?
私はこのクエリを考えていました:
SELECT * FROM table1 WHERE this IN(5,1) ORDER BY this ASC LIMIT 1
ただし、両方の値が正しく見つかった場合、このクエリは常に 1 の値を返しますか? だから私はこれを試しました:
SELECT * FROM table1 WHERE this IN(5,1) ORDER BY this DESC LIMIT 1
しかし、両方の行が正しい場合、これは常に 5 の値を返しますか?