我需要获取MyField
为空或可能包含空白的所有行。
我尝试过以下几种:
SELECT * FROM `myTable` WHERE `MyField` = ""
这在phpMyAdmin中运行良好,但由于某些原因在PHP中不起作用。。
SELECT * FROM `myTable` WHERE `MyField` <> ""
我不确定这是如何工作的,但它返回MyField
不是空的行
SELECT * FROM `myTable` WHERE LTRIM(RTRIM(`MyField`)) = ""
空结果集
做这件事的正确方法是什么?
TRIM函数完成以下工作:
mysql> SELECT * FROM users;
+----+------+
| id | name |
+----+------+
| 1 | |
| 2 | |
| 3 | test |
+----+------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM users WHERE TRIM(name)='';
+----+------+
| id | name |
+----+------+
| 1 | |
| 2 | |
+----+------+
2 rows in set (0.00 sec)
SQL fiddle
字段是否默认为NULL?
如果是这样,你尝试过吗:
WHERE myfield IS NULL OR myfield = "";
SELECT * FROM `myTable` WHERE `MyField` != "";