我安息吧。
我有一个问题,我如何实现这种算法(我只会用一个英文不好的例子)
在index.php页面中。我发送了一个get方法(term=dog&name=john)
并且在process.php中如何使用此get方法数据对数据进行排序,其中页面将显示所有“term = dog”,并且将显示的第一个是“name = john”,后跟任何(名称) = “任何”)。
页面显示示例为
dog
**john**
dog
peter
dog
jane
我的失败尝试只显示所有狗的名单,但我不能说明在这种情况下首先出现的是“约翰”
继承我失败的结果
dog
peter
dog
jame
dog
**john**
它根据表中的ID属性进行排序,与我想要的不同。
SELECT * FROM animal WHERE race = '$term' ORDER BY '$name'
这是我到目前为止所有的代码,我还没有开始排序,因为我不知道
答案 0 :(得分:3)
所以在我看来,你希望获得race
='$ term'和if name
='$ name'的所有行,然后将该行放在结果集的顶部。您可以使用此解决方案:
SELECT *
FROM animal
WHERE race = '$term'
ORDER BY CASE name WHEN '$name' THEN 0 ELSE 1 END, name
答案 1 :(得分:0)
SELECT * FROM animal WHERE race = '$term' ORDER BY (name = '$name') DESC
答案 2 :(得分:0)
SELECT race, name, IF(name = 'john', 1, 0) AS o FROM animal WHERE race = 'dog' ORDER BY o DESC;
如果我理解正确,应该为你做。你想要所有行WHERE race ='dog'但在顶部有一个指定的名称。