当前位置:  开发笔记 > 后端 > 正文

有没有办法在SQL语句中将IN与LIKE结合起来?

如何解决《有没有办法在SQL语句中将IN与LIKE结合起来?》经验,为你挑选了2个好方法。

我试图找到一种方法,如果可能的话,一起使用IN和LIKE.我想要完成的是放置一个子查询,将一个数据列表提取到一个IN语句中.问题是包含通配符的数据列表.有没有办法做到这一点?

只是我很好奇的东西.

Example of data in the 2 tables

Parent table

ID    Office_Code   Employee_Name
1     GG234         Tom
2     GG654         Bill
3     PQ123         Chris

Second table

ID    Code_Wildcard
1     GG%
2     PQ%

澄清说明(通过第三方)

由于我看到几个回答似乎没有解决Ziltoid所要求的问题,我想我会尝试澄清我认为他的意思.

在SQL中," WHERE col IN (1,2,3)"大致相当于" WHERE col = 1 OR col = 2 OR col = 3".

他正在寻找我伪编码的东西

 WHERE col IN_LIKE ('A%', 'TH%E', '%C')

这大致相当于

 WHERE col LIKE 'A%' OR col LIKE 'TH%E' OR col LIKE '%C'

正则表达式的答案似乎最接近; 其余的看起来很不合适.



1> 小智..:

我不确定您正在使用哪个数据库,但是使用Oracle,您可以通过在FROM子句中对子查询进行别名而不是在IN子句中使用它来完成相同的操作.使用你的例子:

select p.*
from
  (select code_wildcard
   from second
   where id = 1) s
  join parent p
      on p.office_code like s.code_wildcard



2> Quassnoi..:

MySQL,使用REGEXP:

WHERE field1 REGEXP('(value1)|(value2)|(value3)')

同样在Oracle:

WHERE REGEXP_LIKE(field1, '(value1)|(value2)|(value3)')

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有