У меня есть массив значений, хранящихся в одной ячейке в виде строки, разделенной запятыми, таким образом:
"0,9,10,2,7,3,4,5,6,8,1,11,12"
У меня также есть таблица (table1) со столбцом (order) с этими числами в другой последовательный порядок:
id|order
0 |5
1 |3
2 |4
3 |1
4 |2
etc
Я хочу сделать SELECT
строку "order" из одной таблицы (table2) и использовать эти значения в команде ORDER BY FIELD
при выборе из table1.
Это должно вернуть строку в следующем порядке: 3,4,1,2,0
.
То, что у меня пока есть:
SELECT id
FROM table1
WHERE table1_id = 3746
ORDER BY FIELD(orderKey, (
SELECT `order` FROM table2
WHERE table2_id = 3746)
);
Кажется, проблема в что SELECT
order FROM table2
возвращается в виде строки, которую ORDER BY FIELD
не хочет принимать в качестве входных данных. Это делает SELECT
строки, но они не в указанном порядке.
Я пробовал приведение типов, но, возможно, я не сделал это правильно. Я также искал эквивалент функции php explode
, но безрезультатно.
MySQL версия 5.6.41
Любая помощь приветствуется.