В таблице MySQL есть два столбца: SUBJECT
и YEAR
.
Я хочу сгенерировать буквенно-цифровой уникальный номер, который содержит конкатенированные данные из SUBJECT и YEAR.
Как я могу это сделать? Можно ли использовать простой оператор типа +
?
В таблице MySQL есть два столбца: SUBJECT
и YEAR
.
Я хочу сгенерировать буквенно-цифровой уникальный номер, который содержит конкатенированные данные из SUBJECT и YEAR.
Как я могу это сделать? Можно ли использовать простой оператор типа +
?
Вы можете использовать функцию CONCAT
следующим образом:
SELECT CONCAT(`SUBJECT`, ' ', `YEAR`) FROM `table`
Update:
Чтобы получить этот результат, вы можете попробовать следующее:
SET @rn := 0;
SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`
В php у нас есть два варианта конкатенации столбцов таблицы.
Первый вариант с использованием запроса
В запросе ключевое слово CONCAT используется для конкатенации двух столбцов
SELECT CONCAT(`SUBJECT`,'_', `YEAR`) AS subject_year FROM `table_name`;
Второй вариант с использованием символа (.)
После извлечения данных из таблицы базы данных присвойте значения переменной, затем используйте (.) Символ и соедините значения
$subject = $row['SUBJECT'];
$year = $row['YEAR'];
$subject_year = $subject . "_" . $year;
Вместо подчеркивания (_) мы будем использовать пробелы, запятые, буквы, цифры..etc
Для этого вы можете использовать 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
сначала создайте столбец в таблице newcol_name
следующим образом:
попробуйте это - update table_name Set 'newcol_name' = CONCACT(SUBJECT, ' ', YEAR) ;