模糊查詢區分大小寫嗎?
我愛人做測試工作,遇到問題問我說她們測試時候要求 不區分大小寫,比如M1和m1都顯示。我第一反應需求不合理啊。資料庫一般來說都是等值比較的。否則就要去做一些工作了。我就展開了一個實驗場景,給她看看。實驗場景是Oracle19C,效果如下:
精確查詢a1的時候返回a1,模糊查詢的時候沒有A1。這是我預期的。
但是她說她們系統不區分的。我想到她們系統是MySQL的,理論上MySQL也應該這樣才是。
於是來一個MySQL的,MySQL8.0.29
這個結果說實在的有點讓我吃驚。顯然MySQL是沒有區分。這時候我通常會引入PostgreSQL來進行對比。
PG下是什麼情況呢?
這是PG14版本的結果,PG和Oracle的執行效果是一樣的。
既然這樣看來,可以說其實模糊區分大小寫不是個例。 更加準確的說,這個和是不是模糊查詢無關。而是說我們查詢是不是區分大小寫。即使是精確查詢。
隨即我又想到了相容MySQL的Tidb。
在Tidb下會不會也繼承呢?在tidb5.3的場景下,也是查詢區分大小寫的。可見TiDB在這點上是和Oracle、PG的執行器是一樣的。
那麼是MySQL錯了嗎?其實我倒是覺得這個可能要分場景,真的沒有對錯。PG、Oracle、TiDB如實反饋沒有錯。如果這個時候有個需求說要不區分怎麼辦?通常程式會改 小寫 or 大寫。即應用程式分別匹配一下。而MySQL就不用改了。
但是如果需求說就是要如實反饋,區分呢?顯然MySQL預設下是不行了,有沒有辦法改呢?
有的。這樣就可以了。所以說沒有對錯吧。
不過一開始的確翻車了,因為Oracle思維習慣,覺得是區分的,但是MySQL是不區分的。這種主要看是看資料庫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2895761/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysql模糊查詢預設是不區分字母大小寫的MySql
- python中不區分大小寫嗎Python
- 關於sqlserver字元型別查詢條件區分大小寫SQLServer字元型別
- 區分大小寫
- Git 區分大小寫Git
- mongodb如何不區分大小寫MongoDB
- 手寫下拉選單,模糊查詢資料
- mysql 模糊查詢MySql
- Oracle靜態監聽中SID_NAME區分大小寫嗎?Oracle
- spring data JPA 模糊查詢 --- 使用 LIKE --- 的寫法Spring
- MySQL不區分大小寫設定MySql
- Nginx支援url不區分大小寫Nginx
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- elasticsearch的模糊查詢Elasticsearch
- MyBatis模糊查詢LIKEMyBatis
- mybatis - [07] 模糊查詢MyBatis
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- 配置CaseInsensitiveMap使key不區分大小寫
- Http 請求 header 大小寫有區別嗎?HTTPHeader
- sql 模糊查詢問題SQL
- SpringMVC+Spring Data JPA +Bootstrap 分頁實現和模糊查詢分頁SpringMVCboot
- 二分查詢 | 二分查詢的一種推薦寫法
- Python實用技法第25篇:正則:以不區分大小寫的方式對文字做查詢和替換Python
- mybatis-模糊查詢like CONCATMyBatis
- python 當中的模糊查詢Python
- [20190524]淺談模糊查詢.txt
- IndexPatternService 模糊查詢索引 fuzzyQuery分析Index索引
- [Uniapp] uni-combox模糊查詢APP
- int 被當作模糊查詢
- PostgreSQL DBA(192) - 整行模糊查詢SQL
- 最新版idea不區分大小寫設定Idea
- Git中如何設定區分檔名大小寫Git
- SQL-基礎語法 - 條件查詢 - 模糊查詢SQL
- 區分關聯子查詢和非關聯子查詢
- .NET應用國際化支援-葡萄牙語下如何不區分重音的模糊查詢
- 查詢資料庫大小資料庫
- 查詢資料量的大小