【发布时间】:2017-08-21 19:44:06
【问题描述】:
我的问题与这个已经解决的 Question 相关,但我无法让它工作。
所以我有这个查询,它应该首先过滤“type”列,然后过滤“lastChange”列中的最小时间戳。时间戳会经常更新。
SELECT * FROM api
WHERE (type = 'Public') AND (lastChange = ( SELECT MIN(lastChange) FROM api ));
它似乎过滤了值,因为当我到达保存 type = 'Private' 的行时,结果将为空。
type != 'Public' // doesn't work either, because I have more than two values
但是查询不应该实际上跳过所有不包含 type = 'Public' 的行,只返回那些具有积极结果的行 - 我怎样才能正确地实现这一点?
【问题讨论】:
-
如果您只是想找到最新的,
WHERE `type` = 'Public' ORDER BY lastChange desc LIMIT 1应该可以。注意type周围的反引号,因为它是 MySQL 中的一个特殊词。 -
我不能对上述评论给予足够的支持。这是解决此问题的方法,并且它包含有关您在查询中可能遇到的错误的专业提示。
-
@aynber 没有必要勾选
TYPE,因为它只是一个关键字dev.mysql.com/doc/refman/5.7/en/keywords.html,而不是保留。旁边没有(R)。