2015-06-03 38 views
0

我有一個在MySQL查詢。在哪裏條件不起作用在MySQL

SELECT * FROM tblName WHERE colName = "name"; 

但是,沒有選擇記錄。我檢查了桌子,並且有條件符合條件的字段。順便說一下,記錄是通過存儲過程插入的。當我嘗試編輯某些記錄(colName列)時,編輯的記錄被選中。 COLNAME有一個數據類型爲varchar

+0

看起來像白色空間的問題,運行這個第一'更新的表名設置COLNAME = TRIM(COLNAME)'然後嘗試你的選擇查詢,看看它做任何事情。 –

+4

你可以顯示樣本數據嗎? – Jens

+0

您能否顯示錶格中的一些示例數據,包括匹配的記錄? –

回答

0

試試這個,看看你會得到什麼結果,並檢查是否有空格或什麼問題...

SELECT *,LENGTH(colName) FROM tblName WHERE colName LIKE "%name%"; 

也有可能(我有這個問題我的應用程序自我使用)您搜索的語言,字符在如希臘,你的數據「翻譯」:
GEORGE似乎與GΕΟRGΕ相同但目前還沒有,當你將它們轉換爲小寫

gεοrgε <> george 
+0

嗨,約翰,是的,我有一些列有我的預期長度。我試圖通過SET colName = TRIM(colName)更新列,但它總是說0受影響的行 –

+0

有沒有我提到的問題的機會?你有多語言數據嗎?允許快速準確的響應最好的辦法是提供一個SQLFiddle。 – John

+0

即時通訊抱歉,但你是什麼意思多語言?我試過選擇Lower(colName),它翻譯得很好 –

0

我不知道

,但請儘量使用單引號代替雙引號

像這樣

SELECT * FROM tblName WHERE colName = 'name'; 
+0

不,它不會工作 –