使用变量对MySQL数据进行排序


Sort MySQL data using a variable

我来了,哈哈。

我有一个问题,我该如何实现这种算法(我只举一个我英语不好的例子)

在index.php页面中。我已经发送了一个获取方法(term=dog&name=john)

在process.php中,我如何使用get方法对数据进行排序数据在页面中显示所有的"term=dog",第一个显示的是"name=john",后面跟着whatever(name="whatever")。

页面显示示例将是

dog
**john**
dog
peter
dog
jane

我的失败尝试只显示了所有的狗的列表,但我不能指定在这种情况下首先出现的是"约翰"

这是我失败的结果

dog
peter
dog
jame
dog
**john**

它根据表中的ID属性进行排序,与我希望的不同。

SELECT * FROM animal WHERE race = '$term' ORDER BY '$name'

这是我到目前为止所有的代码,我还没有开始排序,因为我不知道

因此,在我看来,您希望获得race='$term'的所有行,如果name='$name',则将该行放在结果集的顶部。你可以使用这个解决方案:

SELECT   * 
FROM     animal 
WHERE    race = '$term'
ORDER BY CASE name WHEN '$name' THEN 0 ELSE 1 END, name
SELECT * FROM animal WHERE race = '$term' ORDER BY (name = '$name') DESC
SELECT race, name, IF(name = 'john', 1, 0) AS o FROM animal WHERE race = 'dog' ORDER BY o DESC;

如果我理解正确的话,应该为你做这件事。您希望所有的行WHERE race="dog",但顶部有一个指定的名称。