我在那里有选择表的问题。我想选择除第一行之外的所有行。所以..有我的代码
SELECT * FROM table ORDER BY id DESC
因此,此代码从表格中选择和订购ID,这给我ID反馈“5> 4> 3> 2> 1”。并且存在问题..如何选择并回显4> 3> 2> 1行。 所以,如果我有id为1,2,6,8,10的行,echo将是10,8,6,2,1并且我希望select只回显8,6,2,1。
我的选择代码完整错误。
$other = mysql_query("SELECT * FROM table ORDER BY id DESC LIMIT 1, 1");
答案 0 :(得分:3)
这应该这样做。
SELECT * FROM table WHERE id NOT IN (SELECT MAX(id) FROM table) ORDER BY id DESC
答案 1 :(得分:0)
试试这个
$ other = mysql_query(“SELECT * FROM table ORDER BY id DESC OFFSET 1”);
上面的查询工作需要限制
请参阅this answer
答案 2 :(得分:0)
试试这个:
SELECT *
FROM
(
SELECT *, row_number()
OVER (ORDER BY id DESC) row
FROM table
)
WHERE row != 1
它为您选择的行提供数字,并且所有行都没有行号为1
的行答案 3 :(得分:0)
您只需要偏移1,但不能无限制地使用偏移。所以,我建议像:
SELECT * FROM table ORDER BY id DESC LIMIT 99999999 OFFSET 1
警告:确保您的表格不包含大量记录,否则会遇到性能问题。或者,将限制更改为合理的,例如10。
修改强>
答案 4 :(得分:-1)
SELECT *
FROM table
WHERE id NOT IN ( SELECT id
FROM table
ORDER BY id DESC
LIMIT 1 )
ORDER BY id DESC;
你可以试试这个。
在这种情况下,我选择所有行,除了id最大的行
在[1,2,3,4,5]的例子中,它将是:
SELECT *
FROM table
WHERE id NOT IN ( 5 )
ORDER BY id DESC;
希望这有帮助!