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 +?

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`

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


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


-1
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.