我需要从两个选项中获得结果,并进行比较。
他们的值应返回 0 或 1 ,如果其中一个为1,则为1。 1的优先级始终高于0。
此:
答案 0 :(得分:2)
将GREATEST()
中的两个表达式换行以返回最大值,如果1
为1
,则为0
,如果两者都不是,则为SELECT GREATEST(col1, col2) AS result
:
SELECT GREATEST(
(SELECT col1 FROM tbl1 WHERE val='something'),
(SELECT col2 FROM tbl2 WHERE val='something else')
) AS result
如果它跨越两个子选择:
{{1}}
答案 1 :(得分: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