我对MySQL很陌生......所以我相信这对某人来说可能是一个简单的解决方法......我已经尝试了教程和其他帮助主题,但无法弄清楚它为什么不起作用。
我有一个带有自动递增索引的数据表。我想选择表格的最后两行。这就是我所拥有的:
SELECT * FROM tburg_golf ORDER BY 'index' DESC LIMIT 2
出于某种原因,它给了我前两行。我已经尝试删除限制,将DESC更改为ASC ......我能想到的一切。
如果好奇,这是更大代码的一部分:
$result = mysql_query("SELECT * FROM tburg_golf ORDER BY 'index' DESC LIMIT 2");
while($row = mysql_fetch_assoc($result)) {
$date = $row['date'];
$day = $row['day'];
$time = $row['time'];
$icon = $row['icon'];
$forecast = $row['forecast'];
$updated = $row['updated'];
echo $date.$day.$time.$icon.$forecast.$updated.'<p>';
}
答案 0 :(得分:3)
SELECT * FROM tburg_golf ORDER BY `index` DESC LIMIT 2
如果您键入'index'
,MySQL将对字符串'index'
进行ORDER BY,这对于所有元组而言都是相同的,而不是列index
。
答案 1 :(得分:2)
您按'index'
排序,这是字符串常量。相反,列名由`
如果你的自动递增列实际上被称为index
,这将起作用;
SELECT * FROM tburg_golf ORDER BY `index` DESC LIMIT 2
按'index'
排序将按相同的字符串对每一行进行排序,这基本上会以随机顺序为您提供行。
答案 2 :(得分:2)
表中是否有一个名为“index”的字段?
如果我相信单词index是MySQL中的保留字,这就是为什么它可能不起作用的原因。重命名字段或用`而不是'例如
包装它SELECT * FROM tburg_golf ORDER BY `index` DESC LIMIT 2