2つの選択から結果を取得し、それらを比較する必要があります。
それらの値は0または1を返す必要があり、そのうちの1つが1の場合、それは1です。1は常に0よりも優先されます。
これ:
- 1番目は0を返し、2番目は1を返し、それから1になります。
- 1番目は1を返し、2番目は0を返し、それから1になります。
- どちらも1を返しますが、明らかに1です。
- 両方とも0を返し、最終的には0になります。
2つの式をラップしGREATEST()
て最大値を返します。これは1
、どちらかがそうである場合1
とどちらもそうで0
ない場合です。
SELECT GREATEST(col1, col2) AS result
2つの副選択にまたがる場合:
SELECT GREATEST(
(SELECT col1 FROM tbl1 WHERE val='something'),
(SELECT col2 FROM tbl2 WHERE val='something else')
) AS result
別のSELECTでラップし、ORを使用するだけです。MySQLはすでに1をtrueとして扱い、0をfalseとして扱います。
これらを試してください:
SELECT (SELECT 1) OR (SELECT 0) AS result
// Returns 1
SELECT (SELECT 0) OR (SELECT 0) AS result
// Returns 0