2013-07-02 61 views
0

晚上好!我有一個MySQL的問題,我想不通......Mysql相等字符串返回0行和LIKE字符串返回1行

這裏是我的情況:

Table Name: up_categorys 

ID | Category 
-------------- 
5 | Xbox Live 

當我這樣做查詢,數據庫返回零行:

SELECT id FROM up_categorys WHERE category_name = 'Xbox Live' LIMIT 0 , 30 

但當我做這個查詢時,數據庫返回1行:

SELECT id FROM up_categorys WHERE category_name LIKE '%Xbox Live%' LIMIT 0 , 30 

也許天才能解決這個問題嗎?可能是你!

+2

你肯定* *行ID 5是*正是*「的Xbox Live」和之前或之後沒有任何空格或什麼嗎? –

+1

'SELECT id FROM up_categorys WHERE category_name LIKE'Xbox Live'LIMIT 0,30'或'SELECT id FROM up_categorys WHERE category_name LIKE'Xbox Live%'LIMIT 0,30' or'SELECT id FROM up_categorys WHERE category_name LIKE'% Xbox Live'限制0,30'。這些查詢中的任何一個都會返回什麼? –

+0

你可以嘗試SELECT ID從up_categorys哪裏TRIM(category_name)='Xbox Live'?你得到了什麼? – fthiella

回答

2

您可能在category_name字段中有前導或尾隨空白。
嘗試

SELECT id FROM up_categorys WHERE TRIM(category_name) = 'Xbox Live' LIMIT 0 , 30 
+0

問題確實是尾隨空白。感謝您爲我節省了2個小時的生命;-)! – swordsecurity