2016-08-01 112 views
0

我有一個包含一些電子郵件地址的表。地址當然是一個字符串,我在創建表時將它設置爲VARCHAR(100)DEFAULT NULL。MySQL WHERE子句不能與字符串配合使用

現在,當我使用:

SELECT * FROM emails; 

它工作正常,如果我也選擇使用的ID,它工作正常

SELECT * FROM emails WHERE id = 1; 

但是,如果我試圖找到一個特定的電子郵件

SELECT * FROM emails WHERE address = '[email protected]' 

它根本不起作用。它返回沒有匹配的行,但的一行匹配,因爲它出現在SELECT * FROM emails查詢中。

這裏可能會發生什麼?爲什麼WHERE子句不起作用?

編輯:數據從以下進口領域

LOAD DATA LOCAL INFILE 'c:/users/user/dev/mysql/emails.txt' 
INTO TABLE emails 
FIELDS terminated by ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
(address) 
+0

您確定包含此電子郵件地址的行在該列中沒有其他內容嗎?空格,奇數字符等等 – RiggsFolly

+0

顯然不是。我在空白處想過,因爲我使用了'UPDATE emails SET address = TRIM(address)',但一切都保持不變。 – user1620696

+0

然後嘗試一下LIKE,看看有沒有在那裏看不到的東西 – RiggsFolly

回答

2

可能有開頭或結尾的字符來了。試試這個:

SELECT * FROM emails WHERE address LIKE '%[email protected]%'