mysql - 选择并计算同一查询中的行?

标签 mysql sql select count row

我正在尝试找到一种方法来选择和计算数据库中的某些行。我正在查看 MySQL 文档,这是我想出的:

$query = "SELECT *, COUNT(*) as total WHERE IMAGE != '' AND CATEGORY = '$category' $limit";

但这会在完成后输出一行... :(

我试过:

$query = "SELECT * FROM PRODUCTS,
        (SELECT COUNT(*) as total FROM PRODUCTS WHERE IMAGE != '' AND CATEGORY = '$category') as x
        WHERE IMAGE != '' AND CATEGORY = '$category' $limit";

这行得通,但是我真的不知道这是否会执行得很好,因为有两个 SELECT 语句(我不需要 'as x',但没有这个查询会失败)。

有没有更好的方法? 谢谢

最佳答案

另一种方法是使用sub-query 但不确定性能应该只执行一次,因为没有来自外部表的关联

SELECT *, (select COUNT(*) from PRODUCTS) as total
WHERE IMAGE != '' 
AND CATEGORY = '$category' $limit

关于mysql - 选择并计算同一查询中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38104018/

相关文章:

java - 从 Android 应用程序连接到 MySQL 服务器

java - JDBC - 如何更新日期 -1 的记录

select - mySQL 查询 : How to insert with UNION?

java - 从表中选择 *,其中 = "string with linebreaks"

grails - 如何使选择标签默认具有当前年份和当前月份?

python - sqlalchemy.exc.OperationalError : Can't connect to mysql in docker

java - 在 hibernate 事务中创建一个简单的 jdbc 事务

php - 如何在Laravel中的unionAll之后将group by添加到 Eloquent 查询中?

mysql - 这个需求怎么写mysql查询呢?

php - 使用连接显示 PHP 中类别下的所有页面