我的数据库中有一个名为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()
但是因为我需要从数据库中选择所有内容,所以我将无法使用它。
答案 0 :(得分:1)
您需要使用ORDER
来确保返回行的某些顺序。否则你可能会以随机顺序得到它:
SELECT * FROM titles
WHERE tmdb_name=:name AND tmdb_titleid=:skuid
ORDER BY revision DESC
然后第一行将是具有最高版本的那一行。如果只需要,请在查询结束时使用LIMIT 1
并确保revision
列具有索引。
答案 1 :(得分:0)
如果您想要最新版本
,请不要传递参数修订版SELECT * FROM titles WHERE tmdb_name=:name AND tmdb_titleid=:skuid
order by revision desc limit 1;