Подскажите пожалуйста
Как сохранить порядок выборки при условии IN()?
$spec=“4672, 4591, 4607, 4650”;
$str = “SELECT * FROM th
WHERE tid
in (”.$spec.")";
Есть ли аналог или может как то можно реализовать подобное ORDER BY FIND_IN_SET() , ORDER BY FIELD()
tomat
2
order by id ASC
?
может быть можно было бы сделать SET GLOBAL @myfilter=(2,3,5,7,11,13);
SELECT * FROM test1 WHERE group_id IN @myfilter order by @myfilter;
но пока только работает
SELECT * FROM test1 WHERE group_id IN @myfilter;
и вы можете создать PR на GitHub чтобы быть в курсе прогресса по тикету
tomat
3
или же вы можете сделать UDF функцию, куда передавать список для сортировки и текущий документ и сортировать по этому значению
SELECT *, mysort(id, ”.$spec.") as ord FROM th WHERE tid in (”.$spec.") ORDER BY ord ASC;