在我的SQL表Image
,當我執行搜索查詢SQL不能搜索
SELECT * FROM Image WHERE platename LIKE 'WDD 666'
它返回任何結果(使用其他列進行搜索,那麼沒問題)。
所有的列數據都是由C#代碼插入的。 (如果輸入數據手動搜索工程。)
現在我懷疑單詞WDD 666
不是英文字母。這可能嗎?
在c#中, 通過使用tesseract包裝string type
生成板號。
我應該做搜索的車牌號碼?
在此先感謝和抱歉,我的英語不好。
在我的SQL表Image
,當我執行搜索查詢SQL不能搜索
SELECT * FROM Image WHERE platename LIKE 'WDD 666'
它返回任何結果(使用其他列進行搜索,那麼沒問題)。
所有的列數據都是由C#代碼插入的。 (如果輸入數據手動搜索工程。)
現在我懷疑單詞WDD 666
不是英文字母。這可能嗎?
在c#中, 通過使用tesseract包裝string type
生成板號。
我應該做搜索的車牌號碼?
在此先感謝和抱歉,我的英語不好。
因爲你的情況相符,我要排除區分大小寫。
可能有前導或尾隨空格 - 試試這個..
SELECT * FROM Image WHERE platename LIKE '%WDD 666%'
感謝它的工作原理,順便說一句,現在我試過了 SELECT * FROM Image WHERE platename LIKE'WDD %」 ,但不能.. – KayX
你的列是VARCHAR - 所以不會有尾隨空格,但有很好的可通往空格。嘗試使用領先的'%'符號。 –
嘗試運行此命令:
SELECT '*'+plateName+'*',len(plateName)
FROM image.
我懷疑platename在該領域的一些非打印字符。
它似乎是數據末尾的CR/LF。您可以使用
UPDATE image SET plateName = replace(plateName,char(13)+char(10),'')
WHERE plateName like '%'+char(13)+char(10)+'%'
如果你得到一個積極的行數,你就會知道有CR/LF數據,並將其取出。如果你之後運行select,你的長度應該是7和8根據你的樣本數據
platename的trim()和len()是什麼,即SELECT'*'+ plateName +'*',len(plateName) 。你可能有額外的非打印字符在該領域... – Sparky
這可能是你有不同的排序規則設置比你的查詢使用。檢查此問題出來http://stackoverflow.com/questions/531453/sql-server-2008-difference-between-collation-types –