没有排序值的 PHP fetch_array/sql

标签 php sql

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/

相关文章:

PHP strtotime 返回 Mysql UNIX_TIMESTAMP 的不同值

PHP/MYSQL - 找不到此代码发送邮件两次以上的原因

javascript - Ajax post 带有参数数组,然后在 PHP 中引用

mysql - 使用 union all 的结果集创建一个新表

sql - 在 SQL SELECT 查询中添加多行

javascript - [交响乐+ Twig ]

php - 如何列出从 sql 到 html 表的结果

SQL - 按两位分组

sql - 仅选择没有其他出现类型的行

php - 按 Log_time 排序但按组部分排序?