0

我很平静地来了,哈哈。

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

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

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

页面显示示例将是

dog
**john**

dog
peter

dog
jane

我的失败尝试仅显示所有狗列表,但我无法指定在这种情况下首先出现的是“约翰”

这是我失败的结果

dog
peter

dog
jame

dog
**john**

它根据表中的 ID 属性进行排序,这与我想要的不同。

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

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

4

3 回答 3

3

所以在我看来,您想要获取race= '$term' 和 if name= '$name' 的所有行,然后将该行放在结果集的顶部。您可以使用此解决方案:

SELECT   * 
FROM     animal 
WHERE    race = '$term'
ORDER BY CASE name WHEN '$name' THEN 0 ELSE 1 END, name
于 2012-08-03T02:09:04.567 回答
0
SELECT * FROM animal WHERE race = '$term' ORDER BY (name = '$name') DESC
于 2012-08-03T02:12:42.490 回答
0
SELECT race, name, IF(name = 'john', 1, 0) AS o FROM animal WHERE race = 'dog' ORDER BY o DESC;

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

于 2012-08-03T02:26:48.490 回答