3 回答

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是另一種方法:
select * from tbl where col like 'ABC%'
union
select * from tbl where col like 'XYZ%'
union
select * from tbl where col like 'PQR%';
這是驗(yàn)證的測(cè)試代碼:
create table tbl (col varchar(255));
insert into tbl (col) values ('ABCDEFG'), ('HIJKLMNO'), ('PQRSTUVW'), ('XYZ');
select * from tbl where col like 'ABC%'
union
select * from tbl where col like 'XYZ%'
union
select * from tbl where col like 'PQR%';
+----------+
| col |
+----------+
| ABCDEFG |
| XYZ |
| PQRSTUVW |
+----------+
3 rows in set (0.00 sec)

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
這是臨時(shí)表的好用法。
CREATE TEMPORARY TABLE patterns (
pattern VARCHAR(20)
);
INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');
SELECT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);
在示例模式中,col無(wú)法匹配多個(gè)模式,因此可以確保tbl結(jié)果中最多只能看到每一行。但是,如果您的模式col可以匹配多個(gè)模式,則應(yīng)使用DISTINCT查詢修飾符。
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
Oracle 10g具有允許在SQL中使用符合POSIX的正則表達(dá)式的功能:
REGEXP_LIKE
REGEXP_REPLACE
REGEXP_INSTR
REGEXP_SUBSTR
有關(guān)此函數(shù)的語(yǔ)法詳細(xì)信息,請(qǐng)參見(jiàn)《Oracle數(shù)據(jù)庫(kù)SQL參考》。
使用示例查看Perl中的正則表達(dá)式。
代碼:
select * from tbl where regexp_like(col, '^(ABC|XYZ|PQR)');
- 3 回答
- 0 關(guān)注
- 3645 瀏覽
添加回答
舉報(bào)