You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询问题:指定用户名数据按id降序排列失效

问题分析与解决方案

嘿,我来帮你搞定这个问题~

首先得指出你当前代码的核心问题:你现在用的是count(user_name)聚合函数,这个查询只会返回一行结果——就是匹配user_name='$_name'的记录总数,所以你加ORDER BY id DESC完全起不到作用,因为根本没有多行数据可以排序呀!

正确的SQL写法

如果你想要显示所有user_name等于$_name的列(也就是完整的记录),并且按自增字段id降序排列,应该去掉聚合函数,直接查询你需要的字段(或者用*查询所有字段),再加上排序条件:

$query = mysqli_query($dbcon, "SELECT * FROM `viewlist` WHERE user_name='$_name' ORDER BY id DESC");

重要提醒:SQL注入风险!

直接把$_name这种用户输入拼进SQL语句里是非常危险的,很容易被SQL注入攻击。强烈建议你使用预处理语句来避免这个问题,示例代码如下:

// 初始化预处理语句
$stmt = mysqli_prepare($dbcon, "SELECT * FROM `viewlist` WHERE user_name = ? ORDER BY id DESC");
// 绑定参数("s"表示参数是字符串类型)
mysqli_stmt_bind_param($stmt, "s", $_name);
// 执行查询
mysqli_stmt_execute($stmt);
// 获取查询结果
$result = mysqli_stmt_get_result($stmt);

这样就能安全地获取到按id降序排列的目标记录啦~

内容的提问来源于stack exchange,提问作者T. Mothy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:11:51