我的数据库中有一个名为revision
的值,当存在重复条目时,该值会增加。
我正在尝试在我的数据库中选择最新的版本。示例:
|-----------------------------|
| Title | Revision |
|-----------------------------|
| Some title 1 | 0 |
| Some title 1 | 1 |
| Some title 1 | 2 | <-- select this one
|-----------------------------|
这是我的查询(例如,我知道最后一个参数将失败):
$titlecheck = $this->query("SELECT * FROM titles WHERE tmdb_name=:name AND tmdb_titleid=:skuid AND revision=:revision");
if($titlecheck->execute(array(":name" => $api[1]['tmdb']['name'], ":skuid" => $api[1]['tmdb']['titleid'], ':revision'=>LARGEST))) {
// do something
}
如何选择最新的修订号?我已经研究了MAX()
,但是因为我需要从数据库中选择全部,所以我不能使用它。
发布于 2018-06-08 04:22:27
您需要使用ORDER
来确保返回行的特定顺序。否则,您可能会以随机顺序获取它:
SELECT * FROM titles
WHERE tmdb_name=:name AND tmdb_titleid=:skuid
ORDER BY revision DESC
那么第一行将是具有最高修订版的那一行。如果需要的话,可以在查询的末尾使用LIMIT 1
,并确保revision
列有索引。
发布于 2018-06-08 04:24:38
如果需要最新的修订版,请不要传递参数修订版
SELECT * FROM titles WHERE tmdb_name=:name AND tmdb_titleid=:skuid
order by revision desc limit 1;
https://stackoverflow.com/questions/50749587
复制相似问题