mysql查詢條件字段值末尾有空格的處理方法

2021-09-11 17:11:12 字數 764 閱讀 6468

文章**:

摘要:今天在工作過程中遇到了乙個很奇怪的mysql查詢問題,當作為查詢條件的字串末尾有空格時,可以查到資料庫中末尾不含空格的值。經過多次查閱資料,最後找到三種解決的方法,現在分享給大家。

比如有這樣乙個sql語句:

select * from table where user='webyang.net ';

注意「webyang.net 」後面是有空格的,即「webyang.net空格」。

執行這個sql語句,卻可以查到資料庫中user為"webyang.net"的那一行。

這是什麼原因呢?

官方文件上說是mysql校對規則屬於padspace,對char和varchar值進行比較都忽略尾部空格,和伺服器配置以及mysql版本都沒關係。

下面為大家提供三種解決方案:

第一種方法:使用like

select * from table where user like 'webyang.net ';

第二種方法:使用binary

select * from table where user = binary 'webyang.net ';

第三種方法:使用length函式

select * from table where user = 'webyang.net ' and length(user) = length('webyang.net ');

三種方法都可以解決mysql 查詢條件字段值末尾有空格的bug,大家可以隨便選一種方法。

mysql查詢表字段預設值

mysql查詢表字段預設值。假設表user有個字段 login times int 11 unsigned not null default 0 comment 登入次數 需要獲取該字段的預設值,實現方法 desc user 查詢結果 field type null default id varch...

時間字段作為查詢條件

時間戳 select order no,process type from doms order master 201901 where date order date 2019 1 23 可以選擇 between and select from market orders where create...

mysql查詢條件 Mysql查詢條件的使用

mysql查詢條件的使用 方法 解釋 gt 大於 gte 大於等於 lt 小於 lte 小於等於 例如 article article.objects.filter id gt 5 startswith 以指定某個字串開始,大小寫敏感 istartswith 以指定某個字串開始,大小寫不敏感 end...