php - 根据变量中 ID 的顺序获取 MySQL 结果

标签 php mysql

我有一个 PHP 变量,它包含如下所示的 JSON 字符串,每个数字都是 module_categoryMySQL 表中的 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/

相关文章:

mysql - 在 MySQL SELECT 结果中包含 NULL 值

php - laravel 插入一个新行,该行具有来自另一个表的键和一个空列

javascript - 使用 Javascript 预加载数组

php - 分页脚本错误--为什么要跳回第一页?

mysql - SQL Now() 仅解析日期

mysql - 考试总持续时间

使用 javascript/jquery 隐藏 div 的 PHP 函数

php - 如何通过 php 中的 mysql 查询逐行迭代

mysql - 使用 phpMyAdmin 导出部分表定义

java - 如何通过Java获取MySQL表中某一列的不同值的ID?