MySQL中varchar字段值包含空格查詢問題解決辦法


前提條件:mysql提供了char和varchar兩種字段類型,但若查詢條件where中包含char或varchar的限制條件,那么會忽略char或varchar字段記錄中末尾的空格字符。

原因:mysql中字符串比較的時候使用的是PADSPACE校對規則,會忽略字符字段最后的空格。

解決方法如下,例如查詢table表中user(varchar類型)的字段:

(1)使用mysql的LIKE查詢關鍵字,  SELECT * FROM TABLE WHERE user LIKE 'abc '; 

(2)使用BINARY關鍵字, SELECT * FROM TABLE WHERE user = BINARY'abc '; 

(3)使用LENGTH函數,SELECT * FROM TABLE WHERE user = ‘abc ’ AND LENGTH(user) = LENGTH('abc ');

以上三種方法均可以將末尾有空格的varchar字段的記錄查詢出。

分析:方法(1)中使用LIKE子句查詢法,如果沒有使用百分號 %進行模糊查詢, LIKE 子句與等號 = 的效果是一樣的;方法(2)中將查詢的字段強轉為二進制合適后進行查詢匹配;方法(3)中在查詢條件中增加varchar字段限制條件LENGTH長度的限制,因此對於末尾的空格可以查詢出。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM