$pdo = $db->prepare('SELECT * FROM animals WHERE id = ?');
$pdo->execute(array($id));
$animals = $pdo->fetchAll();
foreach ($animals as $row) {
echo "<li>".$row["category"]."/".$row["name"]."</li>";
}
我的结果是:我如何根据个人订单对mySQL结果进行排序?
我想现在按类别搜索结果。不是按首字母,而是按逻辑顺序。那么,到底我的结果应该是:
当然这不适用于ORDER BY ASC。但是有没有办法将这些类别定义为“一个”“两个”“三个”“四个”并且说:首先打印所有的“一个”,然后是“两个”......并且在这个类别中按名称排序?
如果您有一个额外的列CategoryNumber,它是一个表示类别的int,那么'ORDER BY CategoryNumber,Name'就可以工作。你的问题是试图对一个字符串进行排序,就好像它是一个数字一样。 – ADyson
认为你应该在你的php代码中做到这一点。将“字符串号”转换为数字并对其进行排序 – Jens
在数据库中添加一个名为“order”的列,对于所有的“one”插入“1”,对于“two”插入“2” - 然后可以使用ORDER BY函数SQL :) – Twinfriends