MySQL, concatena due colonne


86

Ci sono due colonne in una tabella MySQL: SUBJECTe YEAR.

Voglio generare un numero univoco alfanumerico che contiene i dati concatenati da SUBJECT e YEAR.

Come posso fare questo? È possibile utilizzare un operatore semplice come +?

Risposte:


184

Puoi usare la CONCATfunzione in questo modo:

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

Aggiornare:

Per ottenere quel risultato puoi provare questo:

SET @rn := 0;

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

1
La tua prima risposta, SELECT CONCACT(SUBJECT, ' ', YEAR)mi ha davvero aiutato. +1
FastTrack

4
Il risultato è nullo quando una qualsiasi riga è vuota sui campi da concatenare. Qual è la soluzione a quel problema?
TSR

2
@TSR Buona domanda! Ho trovato la risposta per te. Se uno dei campi è nullo, è necessario utilizzare MySQL IFNULL op. Quindi sopra sarebbe come: SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) FROMtable
Logan

17

Puoi usare php integrato in CONCAT () per questo.

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

cambiare il nome del file come requisito

allora il risultato è

inserisci qui la descrizione dell'immagine

e se vuoi concatenare lo stesso file usando un altro campo che lo stesso allora

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

allora questo è l'output inserisci qui la descrizione dell'immagine


1
Bello. Solo per tua informazione, CONCAT usato qui è la funzione incorporata di MySQL, non una funzione php.
Yousaf Hassan

6

In php, abbiamo due opzioni per concatenare le colonne della tabella.

Prima opzione utilizzando Query

Nella query, la parola chiave CONCAT utilizzata per concatenare due colonne

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

Seconda opzione utilizzando il simbolo (.)

Dopo aver recuperato i dati dalla tabella del database, assegnare i valori alla variabile, quindi utilizzare (.) Simbolo e concatenare i valori

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

Invece del trattino basso (_), useremo spazi, virgole, lettere, numeri ... ecc


0

In query, CONCAT_WS()funzione.

Questa funzione non solo aggiunge più valori di stringa e li rende un unico valore di stringa. Consente inoltre di definire il separatore ("", ",", "-", "_", ecc.).

Sintassi -

CONCAT_WS( SEPERATOR, column1, column2, ... )

Esempio

SELECT 
topic, 
CONCAT_WS( " ", subject, year ) AS subject_year 
FROM table

-1
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.