获取字段为空的MySQL记录


Getting MySQL records where field is empty

我需要获取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`  != "";