使用MSSQL时,我的项目出现问题
TableName: tbA
ID | COL
---+------
1 | 'abc'
2 | 'azc'
3 | 'xyz'
4 | '123'
程序: pSearch(@input string)
我想选择tbA结合LIKE,IN和OR与理想:
SELECT * FROM tbA a WHERE a.Z IN ('"a%c" OR "x%"')
喜欢它的东西,也许我有一个全文搜索的解决方案,但我不想使用它
我的期望是
ID | COL
---+------
1 | 'abc'
2 | 'azc'
3 | 'xyz'
我希望人们给我一个解决方案或别的东西,谢谢大家。
答案 0 :(得分:4)
变式1。
SELECT * FROM tbA a WHERE a.Z LIKE 'a%c' OR a.Z LIKE 'x%'
变式2。
DECLARE @tPattern_ TABLE (pat VARCHAR(50));
INSERT INTO @tPattern_ (pat)
SELECT 'a%c' UNION ALL SELECT 'x%'
SELECT DISTINCT a.*
FROM tbA a
INNER JOIN @tPattern_ p ON a.Z LIKE p.pat
答案 1 :(得分:1)
变式3。
DECLARE @temp TABLE (title NVARCHAR(50))
INSERT INTO @temp (title)
VALUES ('a c'), ('x1111'), ('blank')
SELECT t.*
FROM @temp t
WHERE EXISTS(
SELECT 1
FROM (VALUES ('a%c'), ('x%')) c(t)
WHERE title LIKE t
)