我有一个 PHP 变量,它包含如下所示的 JSON 字符串,每个数字都是 module_category
MySQL 表中的 id
$json_order = '["8","2","7","3","1","6","4","5"]';
所以使用 $json_order
我需要迭代下表,但返回结果的顺序是 $json_order
所在的顺序。
SELECT id, name
FROM `module_category`
任何人都可以告诉我一个好的方法吗?
最佳答案
您可以使用 FIELD()功能,用于自定义排序,正是你需要的,你可以这样使用它:
//Convert $json_order into '8','2','7','3','1','6','4','5' to insert it in sql
$order = str_replace(array('"','[',']'), array("'",'',''), $json_order);
$sql = 'SELECT id, name
FROM `module_category` ORDER BY FIELD(id, '.$order.' )';
更新:抱歉,我上面的代码中有错误,现在已更正:-)
关于php - 根据变量中 ID 的顺序获取 MySQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15503778/