У меня есть функция в MySQL, которая возвращает список целочисленных значений, разделенных запятой, образуя строку.
например,
MyFunction(23);
Возвращает
----------------------
| MyFunction(23) |
|--------------------|
| 34,45,87,23,1 |
----------------------
Это была простая функциональность, необходимая для бэкэнда (Java) - но теперь, когда предлагаются новые функции, мне нужны эти результаты для другого запроса, который может повторяться по ним с использованием ключевого слова IN , например, следующего:
SELECT id, myItemId, myItemValue, myDateTime
FROM
items where id
IN (select MAX(id) from items where myItemId=1
and myItemValue
IN (select MyFunction(123))
group by myItemId);
Будучи единственным элементом csv, результат MyFunction (23) не повторяется.Если бы я мог использовать какую-то функцию, такую как Split(MyFunction(23))
, которая выдала бы результаты, подобные приведенным ниже, я бы идеально подошел к моим запросам без особых изменений.
Вот результаты, которые я ожидаю:
-----------------------------
| Split(MyFunction(23)) |
|---------------------------|
| 34 |
| 45 |
| 87 |
| 23 |
| 1 |
-----------------------------
Также нужно позаботиться о том, чтобы MyFunction () могла возвращать пустой результат или результат с одним элементом (без запятой).
Есть ли встроенная функция или простая функция, которую я могу создать, чтобы получить то же самое?
Это отличается от других вопросов о стековом потоке, так как мое требование очень простое, а вывод других решений будет излишним.Выглядит что-то похожее на функцию split () или очень простую реализацию.