我编写了一个MySql查询来获取与最小id相关的列。看起来像这样
SELECT min(id) as ID,feed , idpropiedad FROM `registrofeed` WHERE feed=21
该表有4行,如下所示
所以根据我写的函数
function setLC()
{
$sql = "
SELECT min(id) as ID
, feed
, idpropiedad
FROM `registrofeed`
WHERE feed=21
";
$result = $this->localDb->execute($sql);
$row=mysql_fetch_array($result);
echo $sql;
echo $row['idpropiedad'];
$this->lastCode = $row['idpropiedad'];
}
返回idpropiedad的空字符串
任何人都可以帮我解决我出错的地方
提前致谢
答案 0 :(得分:3)
我认为您实际需要的查询是:
SELECT id, feed, idpropiedad
FROM registrofeed
WHERE feed = 21
ORDER BY id ASC
LIMIT 1
MIN()
为您提供列中通常最低的值,它不会影响其余列。如果您希望整个行具有最低id
,则无效。
为了说明,如果你真的想在这里使用MIN
,你必须这样做:
SELECT id, feed, idpropiedad
FROM registrofeed
WHERE id = (SELECT MIN(id) FROM registrofeed WHERE feed = 21)
答案 1 :(得分:2)
你可以这样做一个更好的查询:
$sql = "
SELECT id as ID
, feed
, idpropiedad
FROM `registrofeed`
WHERE feed=21
HAVING MIN(id)
";
这将仅返回具有最小ID编号的一行。它比使用ORDERING AND LIMIT 1更具可读性。
答案 2 :(得分:0)
尝试将您的选择查询视为
SELECT * FROM registrofeed
WHERE feed
='21'ORDER BY id
ASC LIMIT 1
这将获取具有最小id的行。
希望有所帮助
答案 3 :(得分:0)
试试这个
$sql = "SELECT min(id) as ID,feed , idpropiedad FROM `registrofeed` WHERE feed='21' order by id asc";