1. 程式人生 > 其它 >vue 型別欄位除了用select框_6.用萬用字元進行過濾

vue 型別欄位除了用select框_6.用萬用字元進行過濾

技術標籤:vue 型別欄位除了用select框

我們用來示例的表叫 PRODUCTS。

7b9205a09317d6654e24e5969c1e22c1.png

我們之前的搜尋,都是建立在去和一個已知的值進行匹配的,比如價格大於 2,或者名稱等於 aaa 之類的,那假如我們要實現檢索出產品名稱中包含 abc 的產品,這個時候就需要使用萬用字元了。

萬用字元只能用於文字欄位,非文字欄位不能使用萬用字元搜尋。

百分號萬用字元

select * from PRODUCTS where PROD_NAME like 'Fish%';

% 表示任何字元出現任意次數(包括 0 個字元),這裡我們就實現了找出所有以 fish 開頭的產品名稱。

萬用字元可以在任意位置中使用,且可以寫多個。

select * from PRODUCTS where PROD_NAME like '%bean bag%'; 

這句 SQL 就表示只要 PROD_NAME 包含「bean bag」,無論前後是有任何字元,還是沒有字元,都會被檢索出來。

(注:如果某列的資料型別是 50 個字元,而實際儲存的文字不滿 50 個字元,有些 DBMS 會用空格填補內容,那如果你寫了一個 'g%d' 的字面量,表示匹配以 g 開頭的,以 d 結尾的內容,在這種情況下可能不會工作,因為實際內容變成以空格結尾了,所以可以考慮改寫為 'g%d%')

下劃線萬用字元

% 類似,但是它只匹配一個字元,這個字元必須存在,不能為空。

select * from PRODUCTS where PROD_NAME like '_ish bean bag toy';

可以匹配到 PROD_NUM = 'Fish bean bag toy' 這條資料,但如果這樣寫,就匹配不到了:

select * from PRODUCTS where PROD_NAME like '_Fish bean bag toy';

方括號萬用字元

和下劃線萬用字元類似,也是要匹配到一個字元,不過有些 DBMS 不支援。

select * from PRODUCTS where PROD_NAME like '[AB]ish bean bag toy';

方括號中表示這個字元的字符集,也可以用 [^AB] 來表示否定,即這個位置是要以除了 A、B 兩個字元以外的字元。

萬用字元使用提示

由於萬用字元的搜尋要比之前那些搜尋的方式要慢,所以如果有其他操作符可以達到相同的目的的話,儘量避免使用萬用字元。如果真的要使用,也儘量不要以萬用字元開頭,因為萬用字元開頭的搜尋是最慢的。