【发布时间】:2013-05-18 06:30:50
【问题描述】:
1) 这是一个非常简化的示例,说明我正在尝试做的事情,以便于解释问题。 2) 我会做数千个这样的查询。
我有一个这样的 mysql 表:
NUMBER TEXTCOLOUR
one green
two red
three orange
four pink
我想按以下顺序显示以下内容(每个单词都有不同的文本颜色):
三二一三
我试过了:
$query = "SELECT * FROM `table` WHERE `number` IN ('three', 'two', 'one','three')
ORDER BY FIND_IN_SET(number, 'three,two,one,three')";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "
<div class='" .$textcolour. "'>$number</div>
";
}
但这不会多次显示记录“三”。此外,我不想写两次相同的数组(一次用于 IN,一次用于 ORDER BY),因为我必须编写数千个这样的查询。
那么问题来了:如何以最少代码以多次并以特定顺序显示mysql记录? p>
感谢您的任何建议!
【问题讨论】:
-
SELECT永远不会多次返回同一行,除非您使用UNION ALL从多个查询中收集结果。 -
初始序列,
three,two,one,three,你数据库里也有吗? -
谢谢大家。 @Mogul,没有其他数据库,只是上面提到的表。