1

2つの選択から結果を取得し、それらを比較する必要があります。

それらの値は0または1を返す必要があり、そのうちの1つが1の場合、それは1です。1は常に0よりも優先されます。

これ:

  1. 1番目は0を返し、2番目は1を返し、それから1になります。
  2. 1番目は1を返し、2番目は0を返し、それから1になります。
  3. どちらも1を返しますが、明らかに1です。
  4. 両方とも0を返し、最終的には0になります。
4

2 に答える 2

2

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
于 2012-07-30T12:51:17.457 に答える
1

別の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
于 2012-07-30T13:27:51.267 に答える