現象:
有乙個表 action_conf,資料如下:
如果想獲取以exp_site_10_開頭的en_name的記錄,sql語句該如何寫?
so easy!
select en_name from action_conf where en_name like 'exp_site_10_%'
很自信的在idb中執行了這條sql,就會發現結果並不是所預期的。
你會發現,執行上面的sql會把所有以 exp_site_10開頭的記程式設計客棧錄都列出來了。
原因:其實,這都是sql中的萬用字元在作怪。在sql中,下劃線_是乙個萬用字元,能匹配任何單一字元。
既然知道原因,修改sql就很容易了。正確的sql應該是:
select en_name from action_conf where en_name like 'exp\_site\_10\_%'
在萬用字元前面增加轉移字元後,mysql就會把萬用字元視為普通字元。
高階:萬用字元整理:
% &nwww.cppcns.combsp; 替代乙個或多個字元
&nfkawcspgbsp;_ 僅替代乙個字元
[charlist] 字元列中的任何單一字元
[^charlist]或[!charlist] 不在字元列中的任何單一字元
本文標題: 在mysql中使用萬用字元時應該注意的問題
本文位址: /shujuku/mysql/124119.html
在設定MySQL時,應該配置其使用靜態
5 在設定mysql時,應該配置其使用靜態庫而不是共享庫。使用共享庫的動態二進位制系統可節省磁碟空間,但靜態二進位制系統更快 然而,如果希望裝入使用者自定義的函式,則不能使用靜態二進位制系統,因為udf機制依賴於動態連線 伺服器引數的選擇 伺服器有幾個能夠改變從而影響其操作的引數 或稱變數 系統變數...
mysql萬用字元 mysql萬用字元使用
mysql萬用字元使用 w3cchool sql模式匹配 匹配單個字元,匹配 匹配任意個字元,包括零個字元 sql模式下的匹配,預設是對於字母的大小寫沒有要求,並且sql模式下,或 是不能在模糊匹配中使用的,而是使用 like 或 not like.例如 select from user where...
在MySQL中使用memcached
這裡提供了一組mysql的udf函式,可以直接在sql中操作memcached。安裝比較簡單,需要安裝 libmemcached 0.12.tar.gz,然後安裝 memcached functions mysql 0.1.tar.gz就可以了。它的幫助檔案中提供了使用方法。只是需要設定ld lib...