1
搜索值使用相同的值縮短句子找一個搜索值
例
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE Name Like '2' OR UnitPrice Like '2' OR Quantity LIKE '2' OR Color LIKE '2'
是有辦法縮短句子,這樣我就不需要重複變量LIKE'值'?
搜索值使用相同的值縮短句子找一個搜索值
例
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE Name Like '2' OR UnitPrice Like '2' OR Quantity LIKE '2' OR Color LIKE '2'
是有辦法縮短句子,這樣我就不需要重複變量LIKE'值'?
LIKE
沒有通配符是=
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE '2' IN (Name, UnitPrice, Quantity, Color)
這擴大了一系列的OR條件
注意字符串'2'
將被轉換爲如果做要求後或擴展
需要通配符和LIKE,你必須使用一系列OR語句。
最後,這不會擴展性能明智的。有了良好的索引,那麼這可能會更好它們之間寫成單獨的查詢與UNION
編輯(每列和其他2爲INCLUDE列如一個),爲了清楚
OP想要使用通配符。因此我的IN
建議將不起作用。所以,你必須做到這一點
WHERE
Name Like '%2%' OR
UnitPrice Like '%2%' OR
Quantity LIKE '%2%' OR
Color LIKE '%2%'
因爲領先的通配符,沒有一點增加索引。所以,我的文字上面關於索引+包括無關
由於它的工作,但我知道我忘了加中如果該值如果「28」,那麼這個SQL是行不通的。因爲它不接受% – unknown
@unknown:你的例子沒有通配符,也不會發現「28」。另外,當查找數量爲2時,爲什麼你想要28?在名稱中搜索(.. LIKE'%2%')我可以理解。請你的問題更清楚:並注意我覆蓋,你可能真的要通配符...... – gbn
呀。如果有太多'或',我確實閱讀過有關性能的內容。我只是不明白每列和其他2作爲包括列。你是不是指'2'IN(名稱,單價,數量,顏色)。我想LIKE「%2%」的例子,這樣它會找到什麼,如果它有可能是關係到2。 – unknown