MySQL при обновлении дубликата ключа - PullRequest
1 голос
/ 25 февраля 2011

Я использую опцию mysql, чтобы обновить результат на дубликате. Работает нормально, чтобы обновить результат. Теперь я пытался объединить существующий результат строки с предыдущим, и я использовал + и. операторы конкатенации, но это дает ошибку.

Вот псевдокод

insert in table 1
on duplicate key update prod_name = "abc" concatenate with existing result

так что если в строке есть запись XYZ, то это должно быть XYZ, abc и далее дубликат должен быть XYZ, abc, dpg и т. д.

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Я полагаю, вы ищете функцию mysql concat() ( документы ).

SQL будет выглядеть примерно так:

INSERT INTO table (prod_name) VALUES ('abc')
  ON DUPLICATE KEY UPDATE prod_name=concat(prod_name,',','abc')
2 голосов
/ 25 февраля 2011

использование

$sql= " INSERT INTO table (prod_name) VALUES ($x)
  ON DUPLICATE KEY UPDATE prod_name='prod_name+$x' ";

Примечание: prod_name должно быть УНИКАЛЬНЫЙ индекс или ПЕРВИЧНЫЙ КЛЮЧ

edit

попробуйте

  $sql= " INSERT INTO table (prod_name) VALUES ($x) ";
  $sql .= is_numeric($x) 
   ? " ON DUPLICATE KEY UPDATE prod_name=prod_name+$x "
   : " ON DUPLICATE KEY UPDATE prod_name=CONCAT_WS(',',prod_name, $x) ";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...