MySQL, concaténer deux colonnes

85

Il y a deux colonnes dans une table MySQL: SUBJECTet YEAR.

Je souhaite générer un numéro unique alphanumérique qui contient les données concaténées de SUBJECT et YEAR.

Comment puis-je faire ceci? Est-il possible d'utiliser un opérateur simple comme +?

Chandra Sekhar Biswal
la source

Réponses:

183

Vous pouvez utiliser la CONCATfonction comme ceci:

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

Mise à jour:

Pour obtenir ce résultat, vous pouvez essayer ceci:

SET @rn := 0;

SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`
Mischa
la source
1
Votre première réponse SELECT CONCACT(SUBJECT, ' ', YEAR)m'a vraiment aidé. +1
FastTrack
4
Le résultat est nul lorsqu'une ligne est vide sur les champs à concaténer. Quelle est la solution à ce problème?
TSR
2
@TSR Bonne question! J'ai trouvé la réponse pour vous. Si l'un des champs est nul, vous devez utiliser l'op MySQL IFNULL. Donc ci-dessus serait comme: SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) FROMtable
Logan
17

Vous pouvez utiliser php intégré à CONCAT () pour cela.

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

changer le nom de fichier comme exigence

alors le résultat est

entrez la description de l'image ici

et si vous voulez concater le même fichier en utilisant un autre champ qui est le même alors

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

alors c'est sortie entrez la description de l'image ici

Islam Shafiqul
la source
1
Agréable. Juste pour votre information, CONCAT utilisé ici est une fonction intégrée de MySQL, pas une fonction php.
Yousaf Hassan
6

En php, nous avons deux options pour concaténer les colonnes de table.

Première option utilisant la requête

Dans la requête, mot clé CONCAT utilisé pour concaténer deux colonnes

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

Deuxième option utilisant le symbole (.)

Après avoir récupéré les données de la table de la base de données, attribuez les valeurs à la variable, puis utilisez (.) Symbol et concaténez les valeurs

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

Au lieu du trait de soulignement (_), nous utiliserons les espaces, la virgule, les lettres, les chiffres..etc

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