Создать новую строковую переменную путем объединения двух целочисленных переменных с MySQL - PullRequest
3 голосов
/ 24 января 2012

Я извиняюсь за глупость вопроса, но я неофит с MySQL, и у меня возникают проблемы даже с чтением документации по этому вопросу. У меня есть таблица с двумя столбцами «homeid» и «indid», которые оба являются целочисленными полями данных. Я хочу объединить их вместе в новую переменную "uid" с дефисом. Желаемый результат будет выглядеть так:

uid   homeid   indid
10-1  10       1
10-2  10       2
11-1  11       1

Я пробовал следующий код, который прекрасно работает, генерируя переменную "uid", в которой должны находиться сцепленные переменные, но, похоже, не работает (хотя и не выдает ошибки) за пределами этого:

ALTER TABLE table_name
add column uid varchar(10) FIRST; /*adds column uid to table "table_name" as first column*/

UPDATE table_name
SET uid=CONCAT('-' , homeid, indid);

Заранее спасибо за помощь (и терпение).

Ответы [ 2 ]

10 голосов
/ 24 января 2012

Здесь вам нужна функция CONCAT_WS(), чтобы использовать разделитель-разделитель - или изменить аргументы на CONCAT():

UPDATE table_name SET uid = CONCAT_WS('-' , homeid, indid);

ИЛИ изменить вокругаргументы CONCAT()

UPDATE table_name SET uid = CONCAT(homeid, '-', indid);
0 голосов
/ 24 января 2012

пожалуйста, попробуйте следующий запрос.

UPDATE table_name SET uid=CONCAT('-' , homeid, indid) where homeid > 0;
...