模糊查詢區分大小寫嗎?
我愛人做測試工作,遇到問題問我說她們測試時候要求 不區分大小寫,比如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模糊查詢(like)時區分大小寫MySql
- Mysql模糊查詢預設是不區分字母大小寫的MySql
- 查詢區分大小寫 (轉)
- vim 查詢不區分大小寫
- 使MySQL查詢區分大小寫(轉)MySql
- python中不區分大小寫嗎Python
- 關於sqlserver字元型別查詢條件區分大小寫SQLServer字元型別
- mysql查詢欄位內容無法區分大小寫問題MySql
- Git 區分大小寫Git
- 密碼區分大小寫密碼
- oracle 不區分大小寫Oracle
- mongodb如何不區分大小寫MongoDB
- 配置mysql不區分大小寫MySql
- mysql 表明不區分大小寫MySql
- MySQL binary 區分大小寫MySql
- MySQL表名區分大小寫MySql
- mysql字串之大小寫匹配查詢MySql字串
- 手寫下拉選單,模糊查詢資料
- Mybatis中模糊查詢的各種寫法MyBatis
- 專案問題總結2:GUID區分大小寫嗎?GUI
- MySQL不區分大小寫設定MySql
- Nginx支援url不區分大小寫Nginx
- java ArrayList排序不區分大小寫Java排序
- 10 行 Python 程式碼寫的模糊查詢Python
- 左百分號模糊查詢的優化優化
- oracle 精確查詢和模糊查詢Oracle
- pgsql查詢優化之模糊查詢SQL優化
- elasticsearch的模糊查詢Elasticsearch
- MyBatis模糊查詢LIKEMyBatis
- sql日期模糊查詢SQL
- Sql Server 強制大小寫區分方法SQLServer
- 設定MYSQL不區分表大小寫MySql
- spring data JPA 模糊查詢 --- 使用 LIKE --- 的寫法Spring
- Java ——MongDB 插入資料、 模糊查詢、in查詢Java
- 分頁查詢,你真的懂嗎?
- sql 模糊查詢問題SQL
- mybatis做like模糊查詢MyBatis
- Mybatis各種模糊查詢MyBatis