2016-06-06 30 views
0

我在我的數據庫中有2個表。兩個表都有一個名爲listing_key的字段。在一個表,如果我打開phpMyAdmin的我可以去基於類似如下的查詢來搜索並選擇一個不同的行:表之間的隨機MySQL問題

SELECT * FROM properties WHERE listing_key='MYLISTINGKEY' 

該查詢返回預期的結果,一切都很好

第二個表只有2個字段...一個AI id字段和相同的listing_key字段。

如果我在第二個表上運行相同的查詢,如果沒有返回結果。但是,如果我將查詢更改爲LIKE語句而不是等於它會返回正確的結果,它就會變得有趣。

我檢查過了,兩個表都有與listing_key字段(varchar(80),utf8_general_ci)相同的設置。這兩個表也是MyISAM表。

我不知道爲什麼我被迫使用LIKE運算符而不是使用equals來查詢表2。

任何想法或想法?

+1

你能演示一個http://sqlfiddle.com/ –

+0

你想讓我演示什麼?我不認爲sqlfiddle會重現我遇到的問題,但我可以放棄它 –

+0

'='對尾隨空格不敏感,而'LIKE'是。 – eggyal

回答

2

這個問題原來是由MS Excel爲每個字段添加尾隨\ r引起的問題。

+0

仍然應該沒有任何區別使用'listing_key ='MYLISTINGKEY''或'listing_key LIKE'MYLISTINGKEY''。所以我會考慮這個錯誤。 (或者我誤解了,你使用了'listing_key LIKE'%MYLISTINGKEY%'') –

+0

我正在使用該表對另一個表中的非in子句進行清除,因此重要的是數據必須精確 –

+0

是的,我所說的是'listing_key LIKE'MYLISTINGKEY''應該檢查完全匹配,因爲你沒有使用任何通配符('%'或'_')。在這種情況下,'LIKE'應該像'='一樣工作。如果沒有,我認爲這是一個錯誤。 –