php - 如何按数组值获取 MySQLi 数据顺序?
问题描述
我创建了一个数组,它用于从 MySQL 服务器获取数据。
$ids = array(249853, 245549, 249851, 245552, 245551, 249854, 245550, 282445, 261747, 249852, 222398, 248072, 248390, 272473, 219212, 234140, 249815, 241089, 271940, 274940);
$sorted_ids = implode($ids, ",");
使用 $sorted_ids 获取数据,这是要检索的 ID,但它是按 ID 升序检索数据
$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids})";
$result = mysqli_query($connection, $sql);
我试过使用 == 但它只显示与其他记录匹配的索引。
$i = 0;
while($row = mysqli_fetch_assoc($result)) {
if( $ids[$i] == $row['ID'] ) {
echo $row['ID']."<br>";
$i++;
}
}
如果两个索引都与其他记录不匹配,则显示记录。
如何按 $ids 数组列表显示记录?
解决方案
做你想做的最简单的方法是在你的 SQL 中排序
$sql = "SELECT ID, number FROM table WHERE ID IN ({$sorted_ids}) ORDER BY FIELD(id, {$sorted_ids})";
应该做的伎俩
推荐阅读
- c++ - 将一个对象分配给另一个对象时点成员变量的值
- android - Android Studio Webview 登录缓存
- python - 第三次安装python时如何修复(未检测到python 3.8安装)?
- python-3.x - 如何添加从现有列添加和求和计数的新列?
- python - 如何在python中创建分组条形图的子图
- javascript - messageReactionAdd 事件仅在机器人对消息做出反应时触发
- javascript - Angular:我将 API 响应(Observable)存储在本地存储中并尝试返回给定代码,但得到不同格式的 observable
- python - CreateView 的 Django 模型表单渲染时间过长(最终超时)
- sql - AS400 - 为什么令牌 *, ! 无效?使用 STRSQL - SQL Interactive Session 运行查询的替代方法是什么?
- java - 没有为模块“app”Android Studio - Mac 指定 JDK