2017-02-09 43 views
0

我是SQL新手,所以儘管在這裏和在Web上搜索,但我一直無法找出我的問題。我需要選擇桌子或書桌的產品,價格超過300美元,其他一切都是正確的,但我要返還所有美元數額,而不僅僅是超過300美元。SQL LIKE子句沒有返回正確的值

這裏是聲明

SELECT ProductDescription, ProductFinish, ProductStandardPrice 
FROM product_t WHERE ProductDescription LIKE '%table%' OR ProductDescription LIKE '%desk%' 
AND ProductStandardPrice > 300; 
+0

'WHERE(產品描述LIKE '%表%' OR產品描述LIKE '%書桌%') 和ProductStandardPrice> 300' –

+0

你失蹤括號或對 –

回答

1

儘管您的格式,operator precedence意味着您的查詢的解釋是這樣的:

SELECT ProductDescription, ProductFinish, ProductStandardPrice 
FROM product_t WHERE ProductDescription LIKE '%table%' 
OR (ProductDescription LIKE '%desk%' AND ProductStandardPrice > 300); 

如果產品說明中包含「表」,將不管返回價格。要經常檢查的價格,只是適當地插入括號:

SELECT ProductDescription, ProductFinish, ProductStandardPrice 
FROM product_t WHERE (ProductDescription LIKE '%table%' OR ProductDescription LIKE '%desk%') 
AND ProductStandardPrice > 300; 
+0

謝謝,我感謝解釋! –

+0

@ l.bol如果這解決了您的問題,請[接受](http://meta.stackexchange.com/q/5234/304954)答案。 – shmosel