这是这个网址
http://mp.weixin.qq.com/s?__biz=MzA5ODM5MDU3MA==&mid=2650861784&idx=1&sn=cb80e88bcac7951897fff6800e238eac&scene=0#wechat_redirectSELECT id
FROM (
SELECT id, ((@cnt:= @cnt + 1) + $perpage - 1) % $perpage cnt
FROM news
JOIN (SELECT @cnt:= 0)T
WHERE id < $last_id
ORDER BY id DESC
LIMIT $perpage * $buttons
)C
WHERE cnt = 0;我看不懂这个
http://mp.weixin.qq.com/s?__biz=MzA5ODM5MDU3MA==&mid=2650861784&idx=1&sn=cb80e88bcac7951897fff6800e238eac&scene=0#wechat_redirectSELECT id
FROM (
SELECT id, ((@cnt:= @cnt + 1) + $perpage - 1) % $perpage cnt
FROM news
JOIN (SELECT @cnt:= 0)T
WHERE id < $last_id
ORDER BY id DESC
LIMIT $perpage * $buttons
)C
WHERE cnt = 0;我看不懂这个
你哪一块不懂?
cnt 是指派的列名
SELECT id
FROM (
SELECT id, ((@cnt:= @cnt + 1) + $perpage - 1) % $perpage AK
FROM news
JOIN (SELECT @cnt:= 0)T
WHERE id < $last_id
ORDER BY id DESC
LIMIT $perpage * $buttons
)C
WHERE AK = 0;
(@cnt:= @cnt + 1) 这里累加,这个表达式的值为1,2,3,4,5.... 可以新建一个表测试一下看看那个join的效果
mysql> select * from test;
+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
+----+
5 rows in set (0.00 sec)mysql> SELECT id, (@cnt:= @cnt + 1) cnt
-> FROM test
-> JOIN (SELECT @cnt:= 0)T;
+----+------+
| id | cnt |
+----+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
+----+------+
5 rows in set (0.00 sec)
然后执行SELECT id, (@cnt:= @cnt + 1) cnt FROM test不也行吗