Php 按受欢迎程度排序
我有两列“meta_value”和“field_id”的“records”表:Php 按受欢迎程度排序,php,mysql,sql,Php,Mysql,Sql,我有两列“meta_value”和“field_id”的“records”表: Item_id表示网站上提交的表格的id, 字段\u id-表单中的参数名称 和meta_值-此参数的值。 field\u id=1是此人的姓名(值存储在meta\u value中),field\u id=2是此人输入的关键字(值存储在meta\u value中) 我需要做的是显示前5名的人员,他们输入“booked”作为关键字的次数最多。 我不太擅长MySQL请求,所以也许有人可以帮助我?我做到了: SELECT
Item_id
表示网站上提交的表格的id,字段\u id
-表单中的参数名称和
meta_值
-此参数的值。field\u id=1
是此人的姓名(值存储在meta\u value
中),field\u id=2
是此人输入的关键字(值存储在meta\u value
中)
我需要做的是显示前5名的人员,他们输入“booked”作为关键字的次数最多。我不太擅长MySQL请求,所以也许有人可以帮助我?我做到了:
SELECT t3.name, COUNT(*) as Cnt FROM
(SELECT t1.meta_value AS name, t2.meta_value AS type, t2.item_id AS field_id FROM
( SELECT * FROM wp_frm_item_metas WHERE field_id=9) AS t1 INNER JOIN ( SELECT * FROM wp_frm_item_metas WHERE field_id=13) AS t2 ON t1.item_id = t2.item_id WHERE t2.meta_value="Booked") AS t3 GROUP BY t3.name ORDER BY Cnt DESC
欢迎来到StackOverflow。由于这几乎肯定是家庭作业(请贴上这样的标签),我们需要请您向我们展示您的尝试。。。我们会提供帮助,但我们不会为您这样做。因为您在数据中有元值、字段ID和表单ID,但与人无关,所以看起来您似乎忽略了问题中的一些重要信息。您如何知道哪个人输入了元数据为“Booked”的数据?(由于数据显示“已预订”,这可能是需要的,而不是“预订”。遗憾的是,计算机需要如此精确和细致。)另一个提示:需要
计数+分组依据也很容易排序依据和限制,但如果使用选择…,我如何计算每个人的“预订”关键字。。。。计数(…)。。。其中…分组方式。。。订购人。。。。限制…
您将获得答案。请参阅选择语法[Mysql选择语法]()
SELECT t3.name, COUNT(*) as Cnt FROM
(SELECT t1.meta_value AS name, t2.meta_value AS type, t2.item_id AS field_id FROM
( SELECT * FROM wp_frm_item_metas WHERE field_id=9) AS t1 INNER JOIN ( SELECT * FROM wp_frm_item_metas WHERE field_id=13) AS t2 ON t1.item_id = t2.item_id WHERE t2.meta_value="Booked") AS t3 GROUP BY t3.name ORDER BY Cnt DESC