我遇到了一个问题,目前无法解决。期待其他问题,但我不是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/

10-10 20:25