1. 程式人生 > 資料庫 >詳解MySQL like如何查詢包含'%'的欄位(ESCAPE用法)

詳解MySQL like如何查詢包含'%'的欄位(ESCAPE用法)

在SQl like語句中,比如

SELECT * FROM user WHERE username LIKE '%luchi%'
SELECT * FROM user WHERE username LIKE '_luchi_',
  • % 作為萬用字元通配多個
  • _ 作為萬用字元通配一個

但當like 所要查詢的欄位中含有 %,我們如何去查:

這個時候就需要指明 欄位中的那個'%‘ 不作為萬用字元;
這裡就需要用到 ESCAPE 轉義

測試:

這裡我們使用這張表

lchh

轉義前:

SELECT * FROM user WHERE username LIKE '%%%';


這裡會發現三個%號都被當做萬用字元了;

轉義後:

SELECT * FROM user WHERE username LIKE '%1%%' ESCAPE '1';


查詢成功

注:

  • ESCAPE 後面跟著一個字元,裡面寫著什麼,什麼就是轉義符;
  • 然後就像 C語言中轉義字元一樣 例如 ‘\n','\t',把這個字元寫在你需要轉義的那個%號前就可以了;

技巧與建議:

MySQL的萬用字元很有用。但這種功能是有代價的:萬用字元搜尋的處理一般要比前面討論的其他搜尋所花時間更長。這裡給出一些使用萬用字元要記住的技巧。

  • 不要過度使用萬用字元。如果其他操作符能達到相同的目的,應該 使用其他操作符。
  • 在確實需要使用萬用字元時,除非絕對有必要,否則不要把它們用 在搜尋模式的開始處。把萬用字元置於搜尋模式的開始處,搜尋起 來是最慢的。
  • 仔細注意萬用字元的位置。如果放錯地方,可能不會返回想要的數.

到此這篇關於詳解MySQL like如何查詢包含'%'的欄位(ESCAPE用法)的文章就介紹到這了,更多相關MySQL like查詢%內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!