SQL LIKE子句没有返回正确的calues

时间:2017-02-09 23:57:29

标签: mysql sql

我是SQL的新手,所以尽管在这里和网上搜索我仍然无法弄清楚我的问题。我需要选择桌子或桌子的产品,其成本超过300美元,其他一切都是正确的,但我要返还所有的金额,而不仅仅是那些超过300美元的金额。

这是声明

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

1 个答案:

答案 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;