0

简化:

$q = mysql_query("SELECT * FROM mytable ORDER BY category") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
    $cat = $row['category'];
    echo $cat."<br />";
}

mytable持有苹果、香蕉、柑橘

我希望结果以特定顺序显示,例如香蕉、苹果、柑橘。

如何进行查询?

4

2 回答 2

2

取自http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html的回复

“如果您想明确指定返回“order by”的顺序,例如,如果您有一个优先级字段,其值为“低”、“高”或“中”......请执行以下操作:

select * from tablename order by priority='High' DESC, priority='Medium' DESC, priority='Low" DESC;"

对于您的情况,这将是:

$q = mysql_query("SELECT * FROM mytable ORDER BY category='Banana' DESC, category='Apple' DESC, category='Citrus' DESC") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
$cat = $row['category'];
echo $cat."<br />";
}
于 2013-09-12T23:09:17.590 回答
2

您可以使用order by field(...)

SELECT * FROM mytable ORDER BY FIELD(category, 'Banana', 'Apple', 'Citrus');

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_field - FIELD() 函数的手册。

于 2013-09-12T23:10:49.977 回答