而不是只检索满足WHERE子句的行,我打算有一个新的结果表列显示该WHERE子句的结果。例如;如何附加一个显示该行WHERE子句结果的新结果列?
ColA ColB ColC NewCol
xxxx xxxx xxxx 1 # where clause is true for that row
xxxx xxxx xxxx 0 # false for that row
xxxx xxx xxx 0
....
如何在MySQL中设计这样的查询?
而不是只检索满足WHERE子句的行,我打算有一个新的结果表列显示该WHERE子句的结果。例如;如何附加一个显示该行WHERE子句结果的新结果列?
ColA ColB ColC NewCol
xxxx xxxx xxxx 1 # where clause is true for that row
xxxx xxxx xxxx 0 # false for that row
xxxx xxx xxx 0
....
如何在MySQL中设计这样的查询?
您可以使用CASE语句来实现你所追求的:
SELECT CASE WHEN MyField = Whatever THEN 1 ELSE 0 END AS NewCol
FROM.....
离开了WHERE子句一起。
如果false,布尔值为0,如果为true,则为1。
所以,做你想做的最简单的方法是:
select t.*,
(<where clause>) as NewCol
from table t;
有没有这个downvote的原因?或者它只是恶意? – 2014-09-10 13:27:36
用户询问相同的问题,他如何将where子句放在列中,而不是引导他的语法,而是告诉他相同的语句,将where子句放在列中。 – 2014-09-11 08:18:56
试试这个:
SELECT ColA, ColB, ColC,
(CASE WHEN ColA = Whatever THEN 1 ELSE 0 END AS WhereColumnResult)
FROM myTable
你能给出一个更具体的例子,我有点不确定你在做什么试图去做。 – 2014-09-10 13:17:33