我正在开发一个新项目,对于这个项目,我需要一个存储在我的数据库中的商店的“搜索引擎”。我对商店的名称和地址进行了类似查询,但仅限商店有效(设置为1)。我的查询如下:
SELECT *
FROM (`shops`)
WHERE `shop_valid` = 1
AND `shop_address` LIKE '%lyon%'
OR `shop_name` LIKE '%lyon%'
ORDER BY `shop_offer` desc
LIMIT 5
此查询返回的结果与名称和地址一致,但其中一些“shop_valid”设置为0.当我删除商店地址上的子句时,查询适用于所有“shop_valid”设置为1.像这样:
SELECT *
FROM (`shops`)
WHERE `shop_valid` = 1
AND `shop_name`
LIKE '%lyon%'
ORDER BY `shop_offer` desc
LIMIT 10
希望有人可以帮助我,我被困了一段时间......
谢谢!
答案 0 :(得分:2)
SELECT * FROM (`shops`)
WHERE `shop_valid` = 1
AND (`shop_address` LIKE '%lyon%' OR `shop_name` LIKE '%lyon%')
ORDER BY `shop_offer` desc LIMIT 5
你必须使用括号。当OR
条件的一部分为真时,另一部分无关紧要。