0

我需要获取所有MyField为空或可能包含空格的行。

我尝试了以下方法:

SELECT * FROM `myTable` WHERE `MyField` = ""

这在 phpMyAdmin 中可以正常工作,但由于某种原因在 PHP 中不能正常工作。

SELECT * FROM `myTable` WHERE `MyField` <> ""

我不确定这是如何工作的,但它返回MyField不为空的行

SELECT * FROM `myTable` WHERE LTRIM(RTRIM(`MyField`)) = ""

空结果集

这样做的正确方法是什么?

4

3 回答 3

6

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小提琴

于 2013-08-30T08:36:45.273 回答
1

该字段是否默认为 NULL?

如果是这样,您是否尝试过:

WHERE myfield IS NULL OR myfield = "";
于 2013-08-30T08:30:48.373 回答
0
SELECT * FROM `myTable` WHERE `MyField`  != "";
于 2013-08-30T08:37:38.547 回答