MySQL упорядочить по (`field`, param1, param2, param3 из массива JSON - PullRequest
2 голосов
/ 12 февраля 2020

Я строю Mysql запрос:

select * from `table` order by field(`column`, "param1", "param2", "param3")

, где param1, param2, param3 взяты из JSON Array ["param1", "param2", "param3"] и когда я помещаю параметры жестко запрограммированы в запросе, все в порядке, но когда я готовлю его (потому что я не знаю, какой счет и поступает заказ):

set json_array='["param1", "param2", "param3"]';
select * from `table` order by field(`column`, replace(replace(json_array, '[', ''), ']', ''))

Не работает.

1 Ответ

1 голос
/ 12 февраля 2020

Вы должны использовать Подготовленные заявления

SET @json_array='["param3", "param1", "param2"]';
SET @query = CONCAT('select * from `table` order by field(`column`, ',
                    replace(replace(@param, '[', ''), ']', ')'));
PREPARE stmt1 FROM @query;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

DEMO

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...