MySQL, concatenar dos columnas

85

Hay dos columnas en una tabla MySQL: SUBJECTy YEAR.

Quiero generar un número único alfanumérico que contenga los datos concatenados de SUBJECT y YEAR.

¿Cómo puedo hacer esto? ¿Es posible utilizar un operador simple como +?

Chandra Sekhar Biswal
fuente

Respuestas:

183

Puedes usar la CONCATfunción de esta manera:

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

Actualizar:

Para obtener ese resultado, puede intentar esto:

SET @rn := 0;

SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`
Mischa
fuente
1
Tu primera respuesta, SELECT CONCACT(SUBJECT, ' ', YEAR)realmente me ayudó. +1
FastTrack
4
El resultado es nulo cuando cualquier fila está vacía en los campos para concatizar. ¿Cuál es la solución a ese problema?
TSR
2
@TSR ¡Buena pregunta! Encontré la respuesta para ti. Si uno de los campos resulta ser nulo, deberá utilizar la opción MySQL IFNULL. Entonces, arriba sería como: SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) FROMtable
Logan
17

Puede usar php integrado en CONCAT () para esto.

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

cambie el nombre presentado como su requisito

entonces el resultado es

ingrese la descripción de la imagen aquí

y si desea concatizar el mismo archivo utilizando otro campo que sea el mismo, entonces

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

entonces esto es salida ingrese la descripción de la imagen aquí

Islam Shafiqul
fuente
1
Agradable. Solo para su información, CONCAT que se usa aquí es una función incorporada de MySQL, no una función php.
Yousaf Hassan
6

En php, tenemos dos opciones para concatenar columnas de la tabla.

Primera opción usando Query

En consulta, palabra clave CONCAT utilizada para concatenar dos columnas

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

Segunda opción usando el símbolo (.)

Después de obtener los datos de la tabla de la base de datos, asigne los valores a la variable, luego use el símbolo (.) Y concatene los valores

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

En lugar de guión bajo (_), usaremos espacios, comas, letras, números, etc.

Vasanth
fuente
-1
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
Saravanan
fuente