如何修改指定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
相关产品推荐
相关产品推荐

