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


85

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

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

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

Ответы:


183

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

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

Обновить:

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

SET @rn := 0;

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

1
Ваш первый ответ SELECT CONCACT(SUBJECT, ' ', YEAR)мне очень помог. +1
FastTrack

4
Результат равен нулю, если какая-либо строка в полях для объединения пуста. Какое решение этой проблемы?
TSR

2
@TSR Хороший вопрос! Я нашел для тебя ответ. Если одно из полей окажется нулевым, вам нужно будет использовать MySQL IFNULL op. Таким образом, приведенное выше будет выглядеть так: SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) FROMtable
Logan

17

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

SELECT CONCAT(`name`, ' ', `email`) as password_email FROM `table`;

измените имя файла в соответствии с вашими требованиями

тогда результат

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

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

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

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


1
Ницца. Просто для вашей информации, здесь используется функция CONCAT, встроенная в MySQL, а не функция php.
Юсуф Хассан,

6

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

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

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

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

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

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

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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.