所以我在使用MySQL查询字符串时遇到了一些问题。我有一张桌子,上面有photo_id-s,我想要检索给定user_id的最高photo_id的图像名称。如果我只想获得最高photo_id,例如
SELECT image FROM table_name WHERE photo_id=(SELECT MAX(photo_id) FROM table_name);
然后一切都有效花花公子。但是,一旦我为 WHERE 语句添加了 AND,我就会收到资源 #3从查询结果。使用 AND 查询:
SELECT image FROM table_name WHERE photo_id=(SELECT MAX(photo_id) FROM table_name) AND user_id=1;
这似乎是一项如此简单的任务,但我被难倒的时间比我想要的要长。都帮助赞赏。整个 php 代码(至少是重要的位)
<?php
include('includes/connection.php');
// this one works fine
$photoQuery = "SELECT image FROM table_name WHERE photo_id=(SELECT MAX(photo_id) FROM table_name)";
// Buggy query
// $photoQuery = "SELECT image FROM table_name WHERE photo_id=(SELECT MAX(photo_id) FROM table_name) AND user_id=5";
$result = mysql_query($photoQuery);
if(!$result){
die(mysql_error());
}
var_dump($result);
$latestPhoto = mysql_fetch_assoc($result);
var_dump($latestPhoto);
echo "lastPhoto - " . $latestPhoto . "<br/>";
?>
所有用户的 photo_id
的最大值是否相同?我猜你可能想要这样的东西:
SELECT image FROM table_name WHERE user_id=5 ORDER BY photo_id DESC LIMIT 1;