搜索使用相同值的值
例子
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE Name Like '2' OR UnitPrice Like '2' OR Quantity LIKE '2' OR Color LIKE '2'
有没有办法缩短句子,这样我就不需要重复变量 LIKE 'value'?
LIKE
没有通配符是=
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE '2' IN (Name, UnitPrice, Quantity, Color)
这会扩展为一系列 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%'
由于前导通配符,添加索引没有意义。所以我上面关于索引+包含的文字是无关紧要的