Создать новую строковую переменную путем объединения двух целочисленных переменных с MySQL

Я извиняюсь за глупость вопроса, но я неофит с 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 ответа

Решение

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

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

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

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

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

UPDATE table_name SET uid=CONCAT('-' , homeid, indid) where homeid > 0;
Другие вопросы по тегам