MySQL, объединить два столбца

В таблице MySQL есть два столбца: SUBJECT и YEAR.

Я хочу сгенерировать буквенно-цифровой уникальный номер, который содержит конкатенированные данные из SUBJECT и YEAR.

Как я могу это сделать? Можно ли использовать простой оператор типа +?

Ответ 1

Вы можете использовать функцию CONCAT следующим образом:

SELECT CONCAT(`SUBJECT`, ' ', `YEAR`) FROM `table`

Update:

Чтобы получить этот результат, вы можете попробовать следующее:

SET @rn := 0;

SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`

Ответ 2

В php у нас есть два варианта конкатенации столбцов таблицы.

Первый вариант с использованием запроса

В запросе ключевое слово CONCAT используется для конкатенации двух столбцов

SELECT CONCAT(`SUBJECT`,'_', `YEAR`) AS subject_year FROM `table_name`;

Второй вариант с использованием символа (.)

После извлечения данных из таблицы базы данных присвойте значения переменной, затем используйте (.) Символ и соедините значения

$subject = $row['SUBJECT'];
$year = $row['YEAR'];
$subject_year = $subject . "_" . $year;

Вместо подчеркивания (_) мы будем использовать пробелы, запятые, буквы, цифры..etc

Ответ 3

Для этого вы можете использовать php, встроенный в CONCAT().

SELECT CONCAT(`SUBJECT`, ' ', `YEAR`) FROM `table`;

то результат введите описание изображения здесь

и если вы хотите выполнить то же самое, что и в другом поле, которое тогда же

SELECT filed1 as category,filed2 as item, GROUP_CONCAT(CAST(filed2 as CHAR)) as item_name FROM `table` group by filed1 

то это выводится введите описание изображения здесь

Ответ 4

сначала создайте столбец в таблице newcol_name следующим образом: попробуйте это - update table_name Set 'newcol_name' = CONCACT(SUBJECT, ' ', YEAR) ;