SQL:
SELECT question,alt_1,alt_2,alt_3,alt_4 FROM questions WHERE id IN ('12','2','32','23')
PHP:
while ($questions = mysql_fetch_array($game)){
echo "$questions[question]";
}
我希望按照值发送到 sql 的顺序打印行:12 - 2 - 32 - 23。
但是 fetch_array/sql(?) 似乎对值进行了排序,因此顺序变为:2 - 12 - 23 - 32(从最小的数字开始......)
有什么方法可以阻止数组按数字排序!?
最佳答案
使用 FIND_IN_SET
SELECT question,alt_1,alt_2,alt_3,alt_4
FROM questions
WHERE id IN ('12','2','32','23')
ORDER BY FIND_IN_SET(id, '12,2,32,23')
注意FIND_IN_SET(id, '12,2,32,23') 12,2没有空格
FIND_IN_SET(field, 'val1,val2')
关于没有排序值的 PHP fetch_array/sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660569/