1. 程式人生 > >MySQL中varchar欄位值包含空格查詢問題解決辦法

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長度的限制,因此對於末尾的空格可以查詢出。

&n