在MySQL中使用通配符時應(yīng)該注意的問題
現(xiàn)象:

有一個表 action_conf,數(shù)據(jù)如下:
如果想獲取以exp_site_10_開頭的en_name的記錄,sql語句該如何寫?
so easy!
select en_name from action_conf where en_name like 'exp_site_10_%'
很自信的在idb中執(zhí)行了這條sql,就會發(fā)現(xiàn)結(jié)果并不是所預(yù)期的。
你會發(fā)現(xiàn),執(zhí)行上面的sql會把所有以 exp_site_10開頭的記錄都列出來了。
原因:
其實(shí),這都是sql中的通配符在作怪。在sql中,下劃線_是一個通配符,能匹配任何單一字符。
既然知道原因,修改sql就很容易了。正確的sql應(yīng)該是:
select en_name from action_conf where en_name like 'exp\_site\_10\_%'
在通配符前面增加轉(zhuǎn)移字符后,mysql就會把通配符視為普通字符。
進(jìn)階:
通配符整理:
% 替代一個或多個字符
_ 僅替代一個字符
[charlist] 字符列中的任何單一字符
[^charlist]或[!charlist] 不在字符列中的任何單一字符
相關(guān)文章
真的了解MySQL中的binlog和redolog區(qū)別
MySQL的binlog和redolog都是用于記錄數(shù)據(jù)庫操作的日志文件,但是它們有不同的作用和特點(diǎn),今天給大家分享MySQL的binlog和redolog區(qū)別,感興趣的朋友一起看看吧2023-11-11
使用MySQL子查詢和CASE語句判斷關(guān)聯(lián)狀態(tài)
在這篇文章中,我們將詳細(xì)講解如何使用 MySQL 的子查詢和 CASE 語句來實(shí)現(xiàn)復(fù)雜的邏輯判斷,具體案例是我們有兩個表 card_management 和 card_auth_register,通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-06-06
MySQL外鍵關(guān)聯(lián)操作的實(shí)現(xiàn)
本文主要介紹了MySQL外鍵關(guān)聯(lián)操作的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
MYSQL METADATA LOCK(MDL LOCK)MDL鎖問題分析
這篇文章主要介紹了MYSQL METADATA LOCK(MDL LOCK)MDL鎖問題分析,并通過實(shí)例給大家例句的問題處理辦法,需要的朋友參考學(xué)習(xí)下。2017-12-12
超詳細(xì)mysql left join,right join,inner join用法分析
比較詳細(xì)的mysql的幾種連接功能分析,只要你看完就能學(xué)會的好東西2008-08-08

