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;

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

Васант
источник
-1
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
Сараванан
источник