我正在尝试使用语法WHERE col LIKE '%'
从MySQL数据库中进行选择,但我希望使用该查询选择偶数NULL
值。是否有一些命令/运算符可以选择任何数据,包括null
?
答案 0 :(得分:17)
使用IFNULL运算符
WHERE IFNULL(xxx, '') LIKE '%'
答案 1 :(得分:7)
SELECT * FROM table WHERE (job LIKE '%' OR job IS NULL)
答案 2 :(得分:2)
如果你想要column1 LIKE'%'并希望column1为NULL,为什么不放弃WHERE子句呢?
尝试:
SELECT * FROM TABLE;
这是我试过的:
mysql> create table foo (a char(30));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into foo values ( '' );
Query OK, 1 row affected (0.01 sec)
mysql> insert into foo values ( NULL );
Query OK, 1 row affected (0.00 sec)
mysql> select * from foo;
+------+
| a |
+------+
| |
| NULL |
+------+
2 rows in set (0.00 sec)
mysql> select * from foo where a like '%' or a is null;
+------+
| a |
+------+
| |
| NULL |
+------+
2 rows in set (0.00 sec)
mysql> select * from foo where ifnull (a, 1) like '%';
+------+
| a |
+------+
| |
| NULL |
+------+
2 rows in set (0.00 sec)
mysql>
毕竟,IFNULL(第1,1列)LIKE'%'实际上是NO-OP ......
答案 3 :(得分:1)
此语句返回除column1
中的NULL之外的所有行SELECT * FROM table WHERE column1 LIKE '%'
要获取包含在column1中为NULL的行的所有行,请使用:
SELECT * FROM table WHERE IFNULL(column1,1) LIKE '%'
来自MySQL文档:
的 IFNULL(表达式1,表达式2)强>
如果expr1不为NULL,则IFNULL()返回expr1;否则返回expr2。 IFNULL()返回一个数值或字符串值,具体取决于使用它的上下文。
但有一点需要注意:如果你在column1上有一个索引,它将不会在这个查询中使用,所以在较大的表中可能会变慢......
答案 4 :(得分:1)
如果要将其与java createQuery
一起使用,请使用COALESCE而不是IFNULLWHERE COALESCE (xxx, '') LIKE '%'