Я пытаюсь заменить столбец в результате запроса на выбор, как показано в This reference, но в отличие от примера у меня много столбцов в таблице, поэтому я не могу указать имя каждого столбца в запросе выбора.Заменить конкретные данные столбца в выбранном запросе?
Я пробовал некоторые способы достичь того же, но никто не кажется эффективным.
select
*, (REPLACE(REPLACE(role_id,1,"admin"),2,"moderator") AS role_id
from user;
или
Select *
from user
where role_id = (select REPLACE(role_id,1,"admin") as role_id from user;
Здесь мы предполагаем, только два возможного значение для ROLE_ID однако в определенном инстансе, что, возможно, придется получить данные из другой таблицы т.е. другой таблицы, которая содержит различные идентификаторы и значение, соответствующее их.
Так есть способ достижения следующих условий в одном запросе: -
- заменить значения некоторых полей возвращаются из запроса на выборку (предполагая, что много столбцов писать имена всех столбцов в отдельности не возможно)
- , чтобы получить значения замещения из разных таблиц для разных столбцов в одной таблице.
Мне нужно реализовать вышеуказанные условия в одном запросе, но изменения не должны быть в базе данных, только результат оптимизации запроса должен быть оптимизирован.
Уже упоминалось следующее, но не могло помочь.
Я использую PHPMyAdmin как двигатель и PHP в качестве языка реализации.
спасибо за помощь, я попробовал кейс/когда тоже, но поскольку мне нужно слишком быстро извлекать данные замены из разных таблиц, это не очень помогает, также проблема с внедрением массива php заключается в том, что из-за использования результата на многих платформах мне нужно оптимизировать sql-запрос itlself, – OshoParth
Я ответил на вопрос, основываясь на информации, которую вы предоставили. – e4c5
Наиболее оптимальным решением является создание массива php, поскольку это не создает каких-либо ограничений для базы данных. Но объединение в таблицу, которая содержит роли, будет одинаково эффективной, если таблицы будут проиндексированы. – e4c5