我有一个INT
的mysql列,它可以包含0
,它还可以NULL
目前我正在使用它:
SELECT
...
FROM
`mytable`
WHERE
IF(:mydata IS NULL, `mycolumn` IS NULL, `mycolumn` = :mydata)
但我想知道是否有更简洁更简洁的方法来获得相同的结果
提前谢谢
答案 0 :(得分:2)
使用<=>
比较运算符进行NULL安全比较:
SELECT
...
FROM
`mytable`
WHERE
`mycolumn` <=> :mydata
答案 1 :(得分:1)
可能不会更短但更易读的方法是使用OR
,如下所示:
SELECT
...
FROM
`mytable`
WHERE
mycolumn IS NULL OR mycolumn = :mydata
除了与NULL
完全匹配的行外,它还会返回mycolumn
中mydata
值的行。