我有这种类型的查询:
SELECT table1.field1, table1.field2, table2.field3
FROM table1
LEFT JOIN table2 ON (...)
因为左连接我有时候有table2.field3 NULL
之后在我的PHP脚本循环中我手动重新定义
...
$row['field3'] = ($row['field3'] === null) ? 'undefined' : $row['field3'];
...
但我怎么能得到这个' undefined'在我的结果集中?
我已经找到了答案,COALESCE似乎有效,但它有许多奇怪的逻辑与许多论点。 好像它做我想要的,但不知何故奇怪......
我感兴趣的是,还有另一种简单的方法可以用' undefined'替换我的NULL?
答案 0 :(得分:3)
你不应该害怕COALESCE ......好吧。
但是,还有其他方法:
只需使用IF& IS NULL
SELECT table1.field1,table1.field2,IF(table2.field3 IS NULL,'undefined',table2.field3)AS field3
或者更简单,使用IFNULL(我相信你会喜欢)
SELECT table1.field1,table1.field2,IFNULL(table2.field3,'undefined')AS field3
https://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_ifnull
答案 1 :(得分:1)
您还可以使用案例,
gsub('NA', 0, newBamAD(x)[,5])
如果您想要检查更多级别条件,可以使用嵌套大小写。