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

如何修改指定MySQL查询语句以实现按名称对两张表排序?

修改PHP中的MySQL查询实现按名称排序

没问题呀!当然可以修改这段代码来实现按名称排序的需求~根据你想要的排序逻辑,我给你两种常见的修改方案:

方案1:仅按怪物名称(Monsters.Name)排序

如果希望结果直接按怪物的名称进行升序排序,只需要调整ORDER BY子句,把排序字段换成怪物名称即可(用别名MName或者原字段名Monsters.Name都可以):

$query = "SELECT Monsters.ID AS `mID`, Monsters.Name AS `MName`, Monsters.MonsterType_ID, MonsterType.Name 
          FROM Monsters 
          INNER JOIN MonsterType ON Monsters.MonsterType_ID = MonsterType.ID 
          ORDER BY MName ASC"; // 这里换成怪物名称别名
$result = $mysqli->query($query);

if ($result && $result->num_rows > 0) {
    echo "<div class='row'>";
    echo "<center>";
    echo "<h2>The Monster Database</h2>";
    echo "<table>"; // 补全你原代码里的标签
    // 后续表格渲染逻辑...
}

方案2:先按怪物类型名称,再按怪物名称排序

如果希望先把同类型的怪物归为一组,再在每组内按怪物名称排序,可以同时指定两个排序字段:

$query = "SELECT Monsters.ID AS `mID`, Monsters.Name AS `MName`, Monsters.MonsterType_ID, MonsterType.Name 
          FROM Monsters 
          INNER JOIN MonsterType ON Monsters.MonsterType_ID = MonsterType.ID 
          ORDER BY MonsterType.Name ASC, MName ASC"; // 先按类型名,再按怪物名
$result = $mysqli->query($query);

if ($result && $result->num_rows > 0) {
    echo "<div class='row'>";
    echo "<center>";
    echo "<h2>The Monster Database</h2>";
    echo "<table>";
    // 后续表格渲染逻辑...
}

如果需要降序排序,只需要把ASC换成DESC就可以啦,比如ORDER BY MName DESC。

内容的提问来源于stack exchange,提问作者Connor Brown

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:50:53