根据 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实现选择下拉框的时候动态从数据库读取数据吗

根据组合框选择更改文本框值

jquery 选中文本框 jquery 文本框样式 jquery 改变样式

如何根据从其他框中选择的文本更改动态创建的组合框的显示项

根据下拉值自动填充文本框

请高手指教:1、怎样在表格中自动选择包含某个数字的所有行,然后再自动选择到下一行