【发布时间】:2018-01-23 13:20:40
【问题描述】:
有一个问题,我希望能得到一些帮助。我写的 MySQL 语句似乎完全忽略了 where 子句:
SELECT `master_logins`.liID, `master_accounts`.maID, `master_accounts`.maUsername
FROM `master_logins`
INNER JOIN `master_accounts` ON `master_logins`.liID = `master_accounts`.maID
WHERE `master_logins`.liClientName = 'asfasf'
OR `master_logins`.liIP = '127.0.0.1'
OR `master_logins`.liSocialClub = 'name'
ORDER BY `master_logins`.`liID` DESC
LIMIT 1
此代码倾向于列出最近的结果,而不管 where 条件是否满足。我已经盯着它看了很久,看不出问题所在。
已尝试将 where 子句设置为仅 1 个条件,并且不适用于内部联接,当我删除内部联接时,它会根据我的 where 子句向我显示正确的结果。
测试数据:
【问题讨论】:
-
编辑您的问题并提供示例数据和所需结果。
-
数据是否可能不是您所期望的?这是我以前犯的错误。尝试返回 WHERE 子句中的字段,以便查看其中的内容。
-
它总是返回最新的行,那里的数据完全符合预期,但问题是它只返回最新的行,而不是应用 where 子句。但我也通过删除内部连接测试了 where 子句,它工作正常
-
另外我现在添加了一些测试数据
-
抱歉造成混淆,但问题仍然是 where 子句似乎并不适用。但它适用于没有内连接的简单选择语句,但我需要使用内连接。
标签: mysql sql join inner-join where-clause