gpt4 book ai didi

sql - 是否可以将 WHERE IN 与 LIKE 一起使用?

转载 作者:行者123 更新时间:2023-12-04 21:08:04 25 4
gpt4 key购买 nike

如果我必须搜索一些数据,我可以使用通配符并使用简单的查询 -

SELECT * FROM TABLE WHERE COL1 LIKE '%test_string%'

而且,如果我必须查看许多我可以使用的值 -

SELECT * FROM TABLE WHERE COL1 IN (Select col from AnotherTable)

但是,是否可以同时使用两者。也就是说,查询不仅执行 WHERE IN,还执行类似于 WHERE LIKE?一个不查看一组值而是使用通配符搜索一组值的查询。

如果不清楚,我可以举个例子。让我知道。谢谢。

示例 -

让我们考虑一下 -

另一个表 -

  id  | Col
------|------
1 | one
2 | two
3 | three

表 -

Col   | Col1
------|------
aa | one
bb | two
cc | three
dd | four
ee | one_two
bb | three_two

现在,如果我可以使用

SELECT * FROM TABLE WHERE COL1 IN (Select col from AnotherTable)

这给了我 -

Col   | Col1
------|------
aa | one
bb | two
cc | three

但是如果我需要怎么办 -

Col   | Col1
------|------
aa | one
bb | two
cc | three
ee | one_two
bb | three_two

我想这应该可以帮助您理解我的意思,同时使用 WHERE IN 和 LIKE

最佳答案

SELECT * 
FROM TABLE A
INNER JOIN AnotherTable B on
A.COL1 = B.col
WHERE COL1 LIKE '%test_string%'

根据提供的示例代码,试一试。最后的 select 语句按照您的要求显示数据。

create table #AnotherTable
(
ID int IDENTITY(1,1) not null primary key,
Col varchar(100)
);

INSERT INTO #AnotherTable(col) values('one')
INSERT INTO #AnotherTable(col) values('two')
INSERT INTO #AnotherTable(col) values('three')

create table #Table
(
Col varchar(100),
Col1 varchar(100)
);

INSERT INTO #Table(Col,Col1) values('aa','one')
INSERT INTO #Table(Col,Col1) values('bb','two')
INSERT INTO #Table(Col,Col1) values('cc','three')
INSERT INTO #Table(Col,Col1) values('dd','four')
INSERT INTO #Table(Col,Col1) values('ee','one_two')
INSERT INTO #Table(Col,Col1) values('ff','three_two')

SELECT * FROM #AnotherTable
SELECT * FROM #Table

SELECT * FROM #Table WHERE COL1 IN(Select col from #AnotherTable)


SELECT distinct A.*
FROM #Table A
INNER JOIN #AnotherTable B on
A.col1 LIKE '%'+B.Col+'%'

DROP TABLE #Table
DROP TABLE #AnotherTable

关于sql - 是否可以将 WHERE IN 与 LIKE 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4285928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com