1. 程式人生 > 資料庫 >詳解Mysql查詢條件中字串尾部有空格也能匹配上的問題

詳解Mysql查詢條件中字串尾部有空格也能匹配上的問題

一、表結構

TABLE person

id name
1
2 你(一個空格)
3 你(二個空格)

二、查詢與結果

select * from person where `name` = ? 

無論 ? = ”你 + 幾個空格”,都會檢索出全部三個結果。

三、原因

MySQL 校對規則屬於PADSPACE,會忽略尾部空格

針對的是 varchar char text …… 等文字類的資料型別

此為 SQL 標準化行為。無需要設定也無法改變。

四、想要精確查詢怎麼辦?

方法一:like

select * from person where `name` like ?

方法二:BINARY

select * from person where `name` = BINARY ?

BINARY 不是函式,是型別轉換運算子,它用來強制它後面的字串為一個二進位制字串,可以理解成精確匹配

以上就是本次介紹的全部相關知識點,如果大家有任何補充可以聯絡我們小編。