PHP使用数据库中的最新修订版

时间:2018-06-07 20:18:34

标签: php sql

我的数据库中有一个名为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()但是因为我需要从数据库中选择所有内容,所以我将无法使用它。

2 个答案:

答案 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;