我遇到了一个问题,目前无法解决。期待其他问题,但我不是SQL的英雄,无法解决。
因此,我需要来自多个列的数据并进行设置
SELECT
name,
m.description,
price
FROM menus m, restaurants r
WHERE (r.uId = m.uId)
AND (m.description LIKE '%broodje%')
OR (m.name LIKE '%broodje%')
AND ((r.lat BETWEEN 52.164857259112 AND 52.434653740888)
AND (r.lng BETWEEN 6.5249704758321 AND 6.9661533241679))
它工作正常,但是它返回2列,数据完全相同。而且我不明白为什么要这么做?代码中肯定有一个简单的错误,或者我忘记了一些错误。
我希望有人可以向我解释问题所在。
提前致谢!
最佳答案
我不知道您的表格如何,但请检查该表格是否应放在括号内AND (m.description LIKE '%broodje%') OR (m.name LIKE '%broodje%')
-> AND ((m.description LIKE '%broodje%') OR (m.name LIKE '%broodje%'))
如果不这样做,则将获取所有具有描述的数据(如%broodje%)和所有具有名称(如%broodje%)的数据。在您的情况下,同一行中的两列都可能具有此数据,这就是为什么要重复的原因。
关于php - MySQL返回双列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37531908/