mysql 在 where 子句中使用用户定义的变量

标签 mysql sql variables where-clause user-defined

sql查询:

select
    u.username,
        @total_subscribers:=(
            select count(s.id)
                from subscribers as s
                where s.suid = u.uid
        ) as total_subscribers
from users as u
where @total_subscribers > 0

如果我删除 where @total_subscribers > 0 查询将显示所有用户及其订阅者总数

但我只想显示那些至少拥有 1 个订阅者的用户...在添加 where 子句并使用定义的变量后,我得到一个空结果集。

最佳答案

您可以使用group byhaving来做到这一点:

select
   u.username,
   count(s.id) as total_subscribers
from users as u
inner join subscribers as s on s.suid = u.uid
group by u.id
having count(s.id) > 0

关于mysql 在 where 子句中使用用户定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934939/

相关文章:

php/mysql 更新非常大的表的更好选择

sql - 查找所有开头包含 '+7' 的数字

mysql - 输出共享和不共享相同属性的项目的 SQL 查询?

python - 海量数据集的Django轻量级 "update"

php - 变量在 else 中不起作用

c - 如何让一个函数在 C 中返回多个变量类型的结果?

mysql - 使用 PHP 在 mySQL 数据库中插入记录时遇到问题

Mysql:使用另一个数据库中的表中的值更新表

SQL Join 从左表和右表返回空行

linux - 将命令保存到变量中而不是运行它