代码之家  ›  专栏  ›  技术社区  ›  Breezer

使用count时mysql只返回一行

  •  8
  • Breezer  · 技术社区  · 15 年前

    好吧,我刚刚发现了一种我从未见过或从未注意到的奇怪行为。

    我正在使用此查询:

      SELECT *, 
             COUNT(*) AS pages 
        FROM notis 
       WHERE cid = 20 
    ORDER BY nid DESC 
       LIMIT 0, 3
    

    …读取3个项目,但在执行此操作时,我希望获取总行数。

    问题是…

    …使用count时,查询只返回一行,但如果删除 COUNT(*) AS pages --我得到了我想得到的3排。很明显,我这里有些东西不见了。

    3 回复  |  直到 15 年前
        1
  •  13
  •   McKay    15 年前

    SELECT *, (select count(*) FROM notis WHERE cid=20) AS count FROM notis WHERE cid=20 ORDER BY nid DESC LIMIT 0,3
    

    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
    

        2
  •  9
  •   Vincent Savard Midhun    15 年前

        3
  •  3
  •   Hamish    15 年前

    SELECT 
       *,
       (SELECT COUNT(*) FROM notis WHERE cid=20) AS pages
    FROM notis 
    WHERE cid=20 
    ORDER BY nid DESC 
    LIMIT 0,3