91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-11-01 10:10:35 來源:億速云 閱讀:526 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹如何解決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條件中文本匹配問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万年县| 松江区| 平罗县| 万山特区| 清镇市| 略阳县| 澄城县| 乐至县| 富民县| 安福县| 开原市| 谢通门县| 西畴县| 瑞安市| 陇川县| 广昌县| 丹凤县| 临清市| 清水县| 大庆市| 乐至县| 尼玛县| 马边| 阜平县| 怀安县| 阳泉市| 青浦区| 达拉特旗| 华安县| 光山县| 临安市| 盘山县| 哈尔滨市| 南汇区| 冀州市| 望奎县| 彩票| 深水埗区| 凤凰县| 新和县| 福建省|