2013-08-30 50 views
0

我需要獲取MyField爲空或可能包含空格的所有行。在字段爲空的情況下獲取MySQL記錄

我曾嘗試以下:

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

這工作正常,在phpMyAdmin但不是在PHP由於某種原因..

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

我不知道這是如何工作,但它返回的行其中MyField不爲空

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

結果爲空

這樣做的正確方法是什麼?

+0

樣本數據請 –

+0

你確定他們是不是NULL值?如果是這樣,請使用'WHERE myField IS NULL'。 – halfer

回答

6

TRIM function這項工作:

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

+0

SQL小提琴,哇,很好的一個!謝謝! – Cups

+0

你也可以使用'WHERE name ='''condition –

+0

@ypercube是的,正如PO所說,可能只有1個空格,使用'name =''OR name ='''可能會更快,就像你說過。但TRIM更好,因爲它包含任意數量的空間(以防萬一)。 – user4035

1

該字段默認爲NULL嗎?

如果是這樣你嘗試:

WHERE myfield IS NULL OR myfield = ""; 
+0

我試過IS NULL,空集 - 不是它默認爲NULL –

0
SELECT * FROM `myTable` WHERE `MyField` != ""; 
+0

無理由downvote也無濟於事 –

+0

'!='mysql操作符? –

+0

酵母,它在MySQL的konsole –

相關問題