Mysql 使用同一查询获取行总数和受数量限制的行数

Mysql 使用同一查询获取行总数和受数量限制的行数,mysql,select,count,Mysql,Select,Count,假设在表A中有许多列值为A、b、c、d的行 在这些行中,我需要10行列值为'c',同时计算列值为'c'的行总数 我试过: select count(*),* from A where column like 'c'; (without limit) select count(*),* from A where column like 'c' limit 10; 这可能吗?或者我必须发出两个查询。给了我一个错误。错误1064 42000:您的SQL语法有错误;请查看MySQL服务器版本对应的手

假设在表A中有许多列值为A、b、c、d的行

在这些行中,我需要10行列值为'c',同时计算列值为'c'的行总数

我试过:

select count(*),* from A where column like 'c'; (without limit)

select count(*),* from A where column like 'c' limit 10;

这可能吗?或者我必须发出两个查询。

给了我一个错误。错误1064 42000:您的SQL语法有错误;请查看MySQL服务器版本对应的手册,以了解在第1行“选择nei_backgrounds.*,AA.cnt内部连接选择background_id,COUNT*AS”附近使用的正确语法。uyo是否介意在您的问题中发布完整的查询?选择nei_backgrounds.*,AA.cnt FROM nei_backgrounds内部连接选择background_id,计算*为来自nei_背景的cnt,其中背景id位于从nei_产品背景类别中选择背景id,其中产品id=578,按背景id AA在nei_背景上分组。列=AA。列,其中nei_背景。列,从产品id=578的nei_产品背景类别中选择背景id10在结果中cnt=1,而我得到10个结果。有些地方不正确。如果您希望使用union,我很乐意提供帮助,但为什么不简单地运行两个查询。启动两个查询是否比一个查询更好???取决于您的应用程序。两个查询可能会导致竞争条件风险。如果在这两个查询之间发生某些更改,则两个结果可能会不同。但在你的问题中,我不认为在没有其他约束或排序以及总计数的情况下同时获得10行c有什么意义。我将收到的信息将作为ajax结果传递,然后显示图像。如果有80张或更多的图片,这需要花费很多时间,所以我试图有选择地只加载前10张,然后再加载其他的。
SELECT n.*, AA.cnt 
FROM nei_product_background_category c
    INNER JOIN nei_backgrounds n ON n.background_id = c.background_id
    INNER JOIN ( 
        SELECT cc.product_id, COUNT(*) AS cnt 
        FROM nei_product_background_category cc
                    INNER JOIN nei_backgrounds nn ON nn.background_id = cc.background_id
        GROUP BY cc.product_id
    ) AA ON c.product_id = AA.product_id
WHERE
    c.product_id = 578
LIMIT 10