Как можно сопоставить значения колонки "value_old", разделенные запятыми, с идентификаторами в таблице "c_user", чтобы заменить числа на соответствующие имена пользователей?
Для того чтобы заполнить таблицу данными и заменить значения колонки "value_old" на имена пользователей из таблицы "c_user", можно воспользоваться следующим SQL-запросом:
```sql
UPDATE your_table t
SET t.value_old = (
SELECT GROUP_CONCAT(u.username)
FROM c_user u
WHERE FIND_IN_SET(u.user_id, t.value_old)
)
```
Где:
- `your_table` - название вашей таблицы, в которой необходимо произвести замену значений
- `value_old` - название колонки, в которой содержатся значения, которые нужно заменить
- `c_user` - название таблицы с именами пользователей и их идентификаторами
- `user_id` - название колонки с идентификаторами пользователей в таблице "c_user"
- `username` - название колонки с именами пользователей в таблице "c_user"
Этот запрос произведет замену чисел в колонке "value_old" таблицы `your_table` на соответствующие имена пользователей из таблицы `c_user`, используя сопоставление по идентификаторам пользователей.
Вроде бы что-то похожее на это: <br/> <pre><code class="sql">SELECT
ch.id_element,
ch.`table`,
ch.param,
GROUP_CONCAT(cu.name) AS value_new
FROM
c_history ch
LEFT JOIN
c_object co ON co.id = ch.id_element
LEFT JOIN
c_user cu ON FIND_IN_SET(cu.id, ch.value_old)
WHERE
ch.`table` = 'c_object'
AND ch.param = 'ids_user_merge'
GROUP BY
ch.id_element, ch.`table`, ch.param;</code></pre> <br/> Но убедительно буду просить прочитать правила нормализации бд, чтобы не было больше таких вопросов. И таких таблиц.