久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何解決Mysql數據庫中sql語句的where條件中文本匹配問題

174次閱讀
沒有評論

共計 1541 個字符,預計需要花費 4 分鐘才能閱讀完成。

這篇文章主要介紹如何解決 Mysql 數據庫中 sql 語句的 where 條件中文本匹配問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Mysql 數據庫中 sql 語句中 where 條件中文本匹配問題

問題描述

字段 name 類型為 varchar 時(CHAR,VARCHAR 和 TEXT 情況都一樣),

語句一

select * from aaa where name= a

語句二

select * from aaa where name= a

結果一樣:不能區分末尾是否有空格,

建議:

1、如果必須精確匹配(包括大小寫和末尾空格)建議轉換成二進制比較,使用 select * from aaa where name=BINARY a

2、如果需要精確校驗末尾是否有空格,但是保留大小寫模糊匹配 (默認校對規則_ci 大小寫不敏感),建議增加 length(name) 就可以比較出長度來區分

3、如果需要精確校驗大小寫,但是保留末尾空格忽略,可以使用 select * from aaa where name= a  collate utf8_cs; (字符為 utf8)

4、默認設置情況下,

a、where name= a

b、where name= a(末尾有空格)

c、where name= A

b、where name= A (末尾有空格)

四中情況匹配的結果是一樣的,

經查詢官方文檔:

所有 MySQL 歸類都是 PAD SPACE 類型。這意味著所有 CHAR,VARCHAR 和 TEXT 值都會進行比較,而不考慮任何尾隨空格。在此上下文中的“比較”不包括 LIKE 模式匹配運算符,其尾部空格是重要的。例如:

mysql  CREATE TABLE names (myname CHAR(10));

Query OK, 0 rows affected (0.03 sec)

mysql INSERT INTO names VALUES (Monty

Query OK, 1 row affected (0.00 sec)

mysql SELECT myname = Monty , myname = Monty FROM names; +——————+——————–+

| myname = Monty | myname = Monty |

+——————+——————–+

 | 1 | 1 |

+——————+——————–+

 1 row in set (0.00 sec)

mysql SELECT myname LIKE Monty , myname LIKE Monty FROM names; +———————+———————–+ |

 myname LIKE Monty | myname LIKE Monty |

 +———————+———————–+

| 1 | 0 |

+———————+———————–+

 1 row in set (0.00 sec)

對于所有 MySQL 版本都是如此,并且不受服務器 SQL 模式的影響。

注意

有關 MySQL 字符集和歸類的更多信息,請參閱第 10 章,字符集,歸類,Unicode。有關存儲要求的更多信息,請參見第 11.7 節“數據類型存儲要求”。

對于尾隨填充字符被去除或比較忽略它們的情況,如果列的索引需要唯一值,則插入到僅與尾部填充字符數不同的列值中將導致重復鍵錯誤。
例如,如果一個表包含 a,則嘗試存儲 a 會導致重復鍵錯誤。

以上是“如何解決 Mysql 數據庫中 sql 語句的 where 條件中文本匹配問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計1541字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 松溪县| 阳城县| 竹溪县| 乌兰县| 张家界市| 巧家县| 松阳县| 安庆市| 合阳县| 香格里拉县| 新郑市| 大兴区| 田东县| 白城市| 德保县| 乌兰察布市| 曲松县| 武平县| 周口市| 丰原市| 泰来县| 大邑县| 贵德县| 西乌珠穆沁旗| 深水埗区| 桓仁| 石景山区| 洪洞县| 滦平县| 台湾省| 深水埗区| 华宁县| 合阳县| 雷州市| 怀宁县| 子洲县| 辉县市| 定西市| 新兴县| 常山县| 阿瓦提县|