根据 ID 选择行,然后再根据文本框的基数选择行
Posted
技术标签:
【中文标题】根据 ID 选择行,然后再根据文本框的基数选择行【英文标题】:Selecting row based on ID and then again based on cardinality of text box 【发布时间】:2014-06-05 23:06:27 【问题描述】:我的问题是我需要像这部电影一样对以下数据库进行排名和分组 -> 最常用的文本。
下面的表格记录了与情绪反应相关的 userId、filmId 和文本。我想做的是说电影 52,并获取使用最多和第二多的文本,例如在这种情况下,有 7 个“文本”是唯一的,2 个被使用了两次,“美丽”和“巧妙”,所以我需要为电影 52 获得美丽和巧妙的结果。这如何在 mysql 或 Laravel Eloquent 中完成?非常感谢您提供任何信息
【问题讨论】:
【参考方案1】:在连接中声明一个变量,并在您的分组查询中增加它,但请确保在内部查询中按顺序排列,否则排名将没有任何值。然后从排名小于或等于所需排名的内部查询中选择。
SELECT FILMID, TEXT
FROM (
SELECT FILMID, TEXT, COUNT(*), @r:=@r+1 AS RANK
FROM filmReview
JOIN (SELECT @r:=0) R
GROUP BY FILMID, TEXT
ORDER BY FILMID, COUNT(*) DESC, TEXT
) T
WHERE RANK <= 2
查看SQLFiddle。
【讨论】:
刚刚检查并看到了这篇文章,它运行良好!非常感谢以上是关于根据 ID 选择行,然后再根据文本框的基数选择行的主要内容,如果未能解决你的问题,请参考以下文章
谁知道怎么用ajax实现选择下拉框的时候动态从数据库读取数据吗