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
Результат є нульовим, коли будь-який рядок порожній у полях для concat. Яке рішення цієї проблеми?
TSR

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

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.