在 SQL 中,有什么方法可以缩短语法 From
Select * from TableName
where ColumnName like '%A%' or ColumnName like '%B' or ColumnName like 'C%'
到
Select * from TableName
where ColumnName in ('%A%','%B','C%')
一次又一次地在Where
子句中写入相同的列名是不可行的。OR
在 SQL 中,有什么方法可以缩短语法 From
Select * from TableName
where ColumnName like '%A%' or ColumnName like '%B' or ColumnName like 'C%'
到
Select * from TableName
where ColumnName in ('%A%','%B','C%')
一次又一次地在Where
子句中写入相同的列名是不可行的。OR
不,没有办法直接将 LIKE 与 IN 结合起来
有一些方法可以解决这个问题,例如 SQL Server 的这个示例
Select *
from
TableName T
JOIN
(VALUES ('%A%'),('%B'),('C%')) AS X(Expression) ON T.ColumnName LIKE X.Expression
这会将多个 OR 搜索条件更改为行和 JOIN
或者您可以使用 UNION 将多个查询合并为一个
Select * from TableName
where ColumnName like '%A%'
union
Select * from TableName
where ColumnName like '%B'
union
Select * from TableName
where ColumnName like 'C%'