1

我需要从两个选择中得到一个结果,然后比较它们。

它们的值应该返回01,如果其中一个是 1,那么它就是 1。1 总是比 0 具有更高的优先级。

这个:

  1. 第一个返回0,第二个返回1,然后是1
  2. 第一个返回1,第二个返回0,然后是1
  3. 两者都返回1,显然是1
  4. 两者都返回0,最后是0
4

2 回答 2

2

将两个表达式包装起来GREATEST()以返回最大值,1如果其中一个是10如果两者都不是:

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

只需将其包装在另一个 SELECT 中并使用 OR。MySQL 已经将 1 视为真,将 0 视为假。

试试这些:

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 回答