好吧,我刚刚发现了一种我从未见过的奇怪的行为,或者没有注意到.
我正在使用此查询:
SELECT *,
COUNT(*) AS pages
FROM notis
WHERE cid = 20
ORDER BY nid DESC
LIMIT 0, 3
Run Code Online (Sandbox Code Playgroud)
...阅读3个项目,但在这样做时我想得到总行数.
...当我使用count时,查询只返回一行,但是如果我删除
COUNT(*) AS pages- 我得到了3行,正如我想的那样.显然,我在这里遗漏了一些东西.
McK*_*Kay 13
是的,count是一个聚合运算符,只返回一行(没有group by子句)
也许做两个单独的查询?让行返回数据和总行数是没有意义的,因为该数据不属于一起.
如果你真的想要它,你可以这样做:
SELECT *, (select count(*) FROM notis WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3
Run Code Online (Sandbox Code Playgroud)
或这个:
SELECT N.*, C.total from notis N join (select count(*) total FROM notis WHERE cid=20) C WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3
Run Code Online (Sandbox Code Playgroud)
根据您的SQL方言,嵌套表达式的差异.
| 归档时间: |
|
| 查看次数: |
12253 次 |
| 最近记录: |