鍍金池/ 問答/數(shù)據(jù)庫/ sql中如何實(shí)現(xiàn)like多個(gè)通配字符?

sql中如何實(shí)現(xiàn)like多個(gè)通配字符?

有一個(gè)問題,想取某個(gè)字段中匹配多種字符的記錄,怎么辦?
select *
from actor
where last_name like ('%DAVI%','MOSTEL%','ABC','kkk%aa')
以上sql語句是錯(cuò)誤的,like不支持多個(gè)字符串,怎樣才能實(shí)現(xiàn)呢?
謝謝

回答
編輯回答
愛是癌

如果 patterns 不是很多,用

last_name LIKE patt1 OR last_name LIKE patt2 ...

就好。如果 patterns 很多,可以把 patterns 存在一個(gè)表 patterns(pat) 里面,然后:

SELECT * FROM actor
 WHERE EXISTS (
       SELECT 1 FROM patterns 
        WHERE actor.last_name LIKE patterns.pat)
2018年3月23日 16:31
編輯回答
孤慣

如果你用的是oracle,可以使用正則函數(shù),regexp_like

2018年5月6日 16:28
編輯回答
女流氓

用OR拼接起來, where last_name like '%DAVI%' OR last_name like 'MOSTEL%' OR ...

2017年10月20日 13:56