PHP和MYSQL查询语句查出30天内反馈问题次数最多的用户的ID

我也不知道怎么能够清除表达我的意思,如图是数据库mkadd中的一个叫feedback的表表格式图1,表内容如图2fanku是反馈的内容shijian是反馈的日期uid就是... 我也不知道怎么能够清除表达我的意思,
如图是数据库mkadd中的一个叫feedback的表
表格式图1,表内容如图2
fanku 是反馈的内容
shijian是反馈的日期
uid就是用户的ID

select语句要怎么写才能查询出 30天内,反馈次数最多的那个用的ID;
就像图2中,uid是1的用户反馈的数量比uid是2的多;

完整的sql语句要怎么写,才能得到反馈次数最多的那个用户的id,条件是30天内
我知道date_format(shijian,'%y%m')=date_format(curdate(),'%y%m')是查询30天内记录的意思,但是具体的sql语句我不会写,
谁能帮帮我写一个完整的语句吗,千恩万谢。
展开
 我来答
abccccaf
2017-09-19 · TA获得超过845个赞
知道小有建树答主
回答量:912
采纳率:86%
帮助的人:277万
展开全部
// 如果你的用户表中已经有了该用户的反馈数目记录,
// 那你可以直接倒序查询再加个 Limit即可 :

$sql = "SELECT * FROM users ORDER BY item_number DESC";


// 如果没有的话, 那就遍历你的Users表, 分别查询出用户的反馈条数再进行排序吧

$sql = "SELECT id FROM users";
$users = [];  // 取出所有用户ID
$result = [];
foreach ($users as $value) {
    $sql = "SELECT count(id) AS number FROM feedback where id = $value";
    $r = mysql_query($sql);  // 取出条数 
    $number = mysql_fetch_assoc($r)['number'];
    $result[] = $number;
}

rsort($result);

echo '<pre>';
print_r($result);   // 最终结果, 取出30条即可
ehco '</pre>';
wchyumo2011
2017-09-19 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:3031万
展开全部
SELECT
uid
FROM
feedback
WHERE
DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(shijian)
GROUP BY
uid
ORDER BY
count(*) DESC
LIMIT 0,1
追问
十分感谢,用了您的代码成功了,好人一生平安
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式