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>
";
}
ただし、これにより、レコード「three」が複数回表示されることはありません。また、同じ配列を 2 回 (IN 用に 1 回、ORDER BY 用に 1 回) 書き込む必要はありません。これらのクエリを何千も作成する必要があるからです。
質問:最小量のコードでmysql レコードを特定の順序で複数回表示するにはどうすればよいですか?
ご提案ありがとうございます。