2012-04-27 26 views
70

Hay dos columnas en una tabla MySQL: SUBJECT y YEAR.MySQL, Concatene dos columnas

Deseo generar un número único alfanumérico que contenga los datos concatenados de SUBJECT y AÑO.

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

Respuesta

151

Usted puede utilizar la función de CONCAT así:

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

Actualización:

Para obtener ese resultado puede probar esto:

SET @rn := 0; 

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

Tu primera respuesta, 'SELECT CONCACT (SUBJECT, '', YEAR)' realmente me ayudó. +1 – FastTrack

+1

El resultado es nulo cuando cualquier fila está vacía en los campos para concat. ¿Cuál es la solución para ese problema? – TSR

-8

En primer lugar crear una columna en la tabla newcol_name como esto - intente esto - update table_name Set 'newcol_name' = CONCACT(SUBJECT, ' ', YEAR) ;

+1

¡No! Si para cualquier razón (como buscar en este campo) desea una nueva columna, debe usar una VISTA: https://dev.mysql.com/doc/refman/5.7/en/create-view.html – rebe100x

3

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

primera opción mediante consultas

En consulta, CONCAT palabra clave 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 usando (.) Símbolo y concatenar los valores

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

En vez de subrayado (_), vamos a utilizar los espacios, comas, letras, numbers..etc

2

Puede utilizar php construido en CONCAT() para esto.

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

cambio presentó nombre como su requisito

entonces el resultado es

enter image description here

y si quieres a concat misma presentada utilizando otro campo que igual entonces

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

luego esto es salida enter image description here

0
$crud->set_relation('id','students','{first_name} {last_name}'); 
$crud->display_as('student_id','Students Name'); 
+0

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. - [De la crítica] (/ review/low-quality-posts/18796600) –