1. 程式人生 > >MySQL-萬用字元(簡單的匹配)

MySQL-萬用字元(簡單的匹配)

之前的搜尋都是鑑於我們已經知道資料的情況下進行的,生活中往往有這種情況存在:我是班級的班主任,現在我想知道班級裡所有姓李的學生一共有幾個,分別叫什麼。這樣的話我們怎麼使用搜索條件?很簡單,利用萬用字元來匹配形如李X或者李XX,所有符合這種形式的都篩選出來就行了。萬用字元就是用來匹配的。必須使用LIKE操作符來運用萬用字元,且區分大小寫

%(匹配任意次數的任意字元)

%是使用最多的萬用字元,它匹配任意次數的任意字元,任意次數的意思是可以是0,也可以是1或1以上。但是要注意,NULL不是0,因此%不能匹配NULL值。

我們來看下面這張表。
這裡寫圖片描述

假如我想要購買一種商品,名字忘了,只記得裡面有個anv3個字母,我想查詢所有商品名裡含有anv這個字元的,應該這樣寫

SELECT vend_id, prod_name, prod_price
FROM products
WHERE prod_name LIKE "%anv%";

這裡寫圖片描述

_(只匹配一個字元)

SELECT vend_id, prod_name, prod_price
FROM products
WHERE prod_name LIKE "_ ton anvil";

這裡寫圖片描述

.5 ton anvil就被排除在外了,因為.5是2個字元

注意:

  1. 萬用字元要比之前的那些搜尋耗時更多,因此除非必要,能不用就不用
  2. 不要把萬用字元置於搜尋的開始處,因為這搜尋起來是最慢的

以上對於簡單的匹配,用%和_就行了。當然,現實生活中遇到的情況會更加複雜,屆時,我們就用正則表示式

來解決