Php 按列计数排序,其中另一列具有静态值
我有一个存储用户项的表,我想在这个查询中使用的两个关键列是user\u id和item\u id。示例中的id字段不是必需的,只是为了显示表中并非只有这两列 ---------------------- id user_id item_id ---------------------- 1 1 324 2 1 324 3 3 324 4 2 230 5 4 324 ---------------------- id用户\u id项目\u id ---------------------- 1 1 324 2 1 324 3 3 324 4 2 230 5 4 324 我想要构造的查询应该返回具有特定项id的项最多的前10个用户 因此,例如,如果我想对项目ID324运行查询,我应该得到以下结果 ------------------- user_id item_count ------------------- 1 2 3 1 4 1 2 0 ------------------- 用户id项目计数 ------------------- 1 2 3 1 4 1 2 0Php 按列计数排序,其中另一列具有静态值,php,mysql,sql,database,count,Php,Mysql,Sql,Database,Count,我有一个存储用户项的表,我想在这个查询中使用的两个关键列是user\u id和item\u id。示例中的id字段不是必需的,只是为了显示表中并非只有这两列 ---------------------- id user_id item_id ---------------------- 1 1 324 2 1 324 3 3 324 4 2 230 5 4 324 ---------
我无法在本地数据库中创建数据库,但我认为这样做就可以了
SELECT user_id, COUNT(item_id) as item_count
FROM TABLE_NAME
WHERE item_id = 324
GROUP BY item_id
ORDER BY item_count;
试试这个
select user_id , count(*) as item_count from table
where item_id = 324 group by user_id order by item_count desc limit 10
limit 10将显示前10名用户,并按描述从高到低排序
但是,上述查询不会根据您的问题给出0计数。如果您真的想要零计数,可以尝试以下方法:(假设您的表名是userlist)
您应该使用group by(但是为什么用户\u 2项\u计数=0…?也应该是1)和
count()
函数您真的想要第四行计数为零吗?我想第四行不需要诚实
SELECT distinct user_id,
(select
count(*) from `userlist`
where user_id=u.user_id and item_id=324
) as item_count FROM `userlist` u
order by item_count desc