是否可以做这样的事情?
IE中。
IN('%1','%2')
值不是很少
你将如何解决这个问题?
答案 0 :(得分:3)
您也可以使用REGEXP_LIKE而不是LIKE。在这种情况下,它可以更灵活。
要获得以“1”或“2”结尾的所有内容,请使用:
SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[12]$')
[12]表示匹配1或2. $表示匹配字符串的结尾。
如果你需要这样的东西:
LIKE '%1' OR LIKE '%2' or LIKE '%A' or LIKE '%W'
...你只需要在方括号内添加其他字符:
SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[12AW]$')
或者,如果你想要以数字结尾的任何,你可以使用它:
SELECT * FROM table_name WHERE REGEXP_LIKE(col_name, '[[:digit:]]$'
答案 1 :(得分:2)
如果您只有几个,只需将它们与or
:
column like '%1' or column like '%2' or...
如果你有很多,你可以创建一个包含模式的表并加入它。
create table matches (
match char(10)
);
insert into matches values
('%1'),('%2'),...;
select * from table
inner join matches on table.column like matches.match;
如果单个行匹配多个模式,那么重复行存在一些问题,但您可以根据所需的最终输出类型对其进行修改。
作为第三种选择,如果长度相同,则可以使用substr()
而不是like
:
select * from table where substr(column,-1,1) in ('1','2',...)
检查最后一个字符是否在值集合中。
答案 2 :(得分:0)
如何自己使用?
Column LIKE '%1' OR Column LIKE '%2'
答案 3 :(得分:-1)
基本上与其他人的例子相同,但最接近你的例子:
SELECT deptno, empno, ename FROM scott.emp
WHERE job IN
(SELECT job FROM scott.emp WHERE job Like ('SALE%') OR job Like ('MANAG%'))
/