Конкатная строка в нескольких строках с php / mysql или codeigniter

Я хотел бы объединить одно и то же значение в поле в нескольких строках с ограничением ..

С php / mysql я сделаю что-то подобное:

$newdata = '33';

$sql = 'UPDATE users set relation=concat(relation,$newdata)
WHERE user_id IN (22, 31, 54)';

Когда поле отношения пустое, этот запрос в порядке, но если поле не пустое (например, отношение: ‘8,56,78’), я бы хотел дополнить ’33’ комой.

У вас есть идея, как это сделать, не используя несколько запросов?
Я хотел бы знать, есть ли способ сделать это в codeigniter тоже.

Спасибо !

1

Решение

SQL имеет IF-операторы:

"UPDATE users set relation=
CASE WHEN relation = ''
THEN $newdata
ELSE concat(relation,$newdata)
END
WHERE user_id IN (22, 31, 54);"
0

Другие решения

попробуйте этот запрос, если поле не будет иметь данных, чем оно будет работать и в этом случае

$newdata = '33';

UPDATE users set relation = IFNULL (CONCAT( relation , $newdata ), $newdata) WHERE user_id IN (22, 31, 54)
1