按自定义数组对行进行排序
Posted
技术标签:
【中文标题】按自定义数组对行进行排序【英文标题】:sort rows by a custom array 【发布时间】:2019-05-26 18:23:57 【问题描述】:是否可以通过从另一个表或以某种方式给出的自定义数组 ids
对行进行排序。
$str = "5,2,3,6,911,18,118,65,985,15...";
$arr = explode(',', $str);
function get_titles($status)
global $db;
$sql = "select * from arts where status = :astatus order by " . $arr . " asc";
$st = $db->prepare($sql);
$st->execute([":astatus" => $status]);
...
【问题讨论】:
这可能会有所帮助...***.com/questions/348410/… mysql sort order by array value的可能重复 @Sean,您的链接上的两个答案都是关于sort by field
。我没有作为排序标准的字段,而是一个外部数组。
该字段是订购的依据。您的数组是附加值。 IE。 ... ORDER BY field(id, ". $str .") ...
如果答案正确请批准
【参考方案1】:
如果您想通过自定义id
订购...
# $str = "5,2,3,6,911,18,118,65,985,15...";
# Values separated by comma
# It can be from array
# $str = implode(",",[5,2,3,6,911,18,118,65,985,15])
$str = "5,2,3,6,911,18,118,65,985,15";
function get_titles($status,$arr)
global $db;
$sql = "SELECT * FROM arts WHERE status = :astatus ORDER BY FIELD(id,".$arr .") ASC";
$st = $db->prepare($sql);
$st->execute([":astatus" => $status]);
...
get_titles($status,$str)
【讨论】:
以上是关于按自定义数组对行进行排序的主要内容,如果未能解决你的问题,请参考以下文章
如何按自定义顺序对 JavaScript 中的数组进行排序? [复制]