搜索使用相同值的值
例
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE Name Like '2' OR UnitPrice Like '2' OR Quantity LIKE '2' OR Color LIKE '2'
Run Code Online (Sandbox Code Playgroud)
有没有办法缩短句子,这样我就不需要重复变量LIKE'值'?
LIKE 没有通配符是 =
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE '2' IN (Name, UnitPrice, Quantity, Color)
Run Code Online (Sandbox Code Playgroud)
这扩展到一系列OR条件
请注意,'2'在OR扩展后,字符串将根据需要进行CAST
如果你确实需要外卡和LIKE,你必须使用一系列OR语句.
最后,这不会在性能方面进行扩展.通过良好的索引(例如,每列一个,其他2个作为INCLUDE列),这可能更好地编写为它们之间具有UNION的单独查询
编辑,为清楚起见
OP想要使用通配符.因此我的IN建议不会奏效.所以你必须这样做
WHERE
Name Like '%2%' OR
UnitPrice Like '%2%' OR
Quantity LIKE '%2%' OR
Color LIKE '%2%'
Run Code Online (Sandbox Code Playgroud)
由于领先的通配符,添加索引没有意义.所以我上面关于索引+包含的文字是无关紧要的