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

时间:2012-08-03 01:49:21

标签: php mysql algorithm

我安息吧。

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

在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'

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

3 个答案:

答案 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'但在顶部有一个指定的名称。