MYSQL多个OR和AND

Chr*_*ton 0 mysql sql

好的,所以我用我的PHP脚本构建了这个查询:

SELECT * 
FROM sale_properties 
WHERE advert_heading LIKE '%harnham%' 
   OR main_advert LIKE '%harnham%' 
   OR advert2 LIKE '%harnham%' 
   OR advert3 LIKE '%harnham%' 
   OR street LIKE '%harnham%' 
   OR district LIKE '%harnham%' 
   OR town LIKE '%harnham%' 
   OR county LIKE '%harnham%' 
   OR area LIKE '%harnham%' 
   OR postcode LIKE '%harnham%' 
   AND numeric_price >= 150000.00 
   AND numeric_price <= 152000.00
Run Code Online (Sandbox Code Playgroud)

现在,这确实给了我一些结果,但是,我希望基本上在数据库中搜索关键字并在价格范围内。上面的查询确实为我提供了关键字,但似乎忽略了大部分价格范围。

这看起来正确吗?还是可以更好地建造?

tan*_*din 5

尝试用括号...

SELECT * FROM sale_properties WHERE
 (
    advert_heading LIKE '%harnham%' OR
    main_advert LIKE '%harnham%' OR
    advert2 LIKE '%harnham%' OR
    advert3 LIKE '%harnham%' OR
    street LIKE '%harnham%' OR
    district LIKE '%harnham%' OR
    town LIKE '%harnham%' OR
    county LIKE '%harnham%' OR
    area LIKE '%harnham%' OR
    postcode LIKE '%harnham%'
) AND (
    numeric_price >= 150000.00 AND
    numeric_price <= 152000.00
)
Run Code Online (Sandbox Code Playgroud)