保持结果顺序-6ren"> 保持结果顺序-我有一个简单的 php 字符串,其中包含一些 id。 $string = "10, 5, 10, 3"; 我想根据这些id获取一些sql,而不丢失字符串中保存的id的顺序。我尝试过: -6ren">
gpt4 book ai didi

php - 基于字符串 "1,5,3,7"的 SQL 查询 -> 保持结果顺序

转载 作者:行者123 更新时间:2023-11-29 18:15:52 24 4
gpt4 key购买 nike

我有一个简单的 php 字符串,其中包含一些 id。

    $string = "10, 5, 10, 3";

我想根据这些id获取一些sql,而不丢失字符串中保存的id的顺序。我尝试过:

    SELECT * FROM media WHERE ID IN ($string);

但结果现在已排序,并且双 ID 消失了

    output array:  3, 5, 10

我如何使用 MYSQL 来获取这样的行

    row0 : id=>10, 
row1 : id=>5,
row2 : id=>10,
row3 : id=>3

有没有办法做到这一点而不需要对每个 id 运行查询?

为了更好地理解 - 这里我的表结构称为媒体。用于保存上传的图像+描述+元数据。

    id, int
file, varchar
description_de, varchar
description_en, varchar
size, varchar
width, int
height, int

并且有一个表“projects”,我在其中仅存储项目的图像 ID。结构复杂。这里没有人需要知道。有一个“媒体”字段,我在其中存储媒体 ID,如下所示:“1,5,33,9,10,1”来存储两个内容。首先是我想要显示的图像的顺序。其次是图像 ID 本身。

我需要一个查询来获取包含媒体中基本所有字段的图像 - 按正确的顺序。

最佳答案

最好在 php 端处理。将唯一 ID 传递给 mysql 查询并根据您的需要调整数据。

$x = [['id'=>10, 'name'=>'a'], ['id'=>3, 'name'=>'b'], ['id'=>5, 'name'=>'c'] ];
$order = [10,3,5,10,3,5];

$result = [];
foreach($order as $k => $v){
foreach($x as $x_a){
if($x_a['id'] == $v){ $result[$k] = $x_a; break; }
}
}
print_r($result);

关于php - 基于字符串 "1,5,3,7"的 SQL 查询 -> 保持结果顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47028706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com