MySQL, Verketten Sie zwei Spalten

84

Eine MySQL-Tabelle enthält zwei Spalten: SUBJECTund YEAR.

Ich möchte eine alphanumerische eindeutige Nummer generieren, die die verketteten Daten von SUBJECT und YEAR enthält.

Wie kann ich das machen? Ist es möglich, einen einfachen Operator wie zu verwenden +?

Chandra Sekhar Biswal
quelle

Antworten:

182

Sie können die CONCATFunktion folgendermaßen verwenden:

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

Aktualisieren:

Um dieses Ergebnis zu erhalten, können Sie Folgendes versuchen:

SET @rn := 0;

SELECT CONCAT(`SUBJECT`,'-',`YEAR`,'-',LPAD(@rn := @rn+1,3,'0'))
FROM `table`
Mischa
quelle
1
Ihre erste Antwort hat SELECT CONCACT(SUBJECT, ' ', YEAR)mir wirklich geholfen. +1
FastTrack
3
Das Ergebnis ist null, wenn eine Zeile in den zu konkatierenden Feldern leer ist. Was ist die Lösung für dieses Problem?
TSR
1
@ TSR Gute Frage! Ich habe die Antwort für dich gefunden. Wenn eines der Felder zufällig null ist, müssen Sie die MySQL IFNULL-Operation verwenden. Das obige wäre also wie folgt: SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) FROMtable
Logan
16

Sie können hierfür in CONCAT () integriertes PHP verwenden.

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

Ändern Sie den Dateinamen als Ihre Anforderung

dann ist das Ergebnis

Geben Sie hier die Bildbeschreibung ein

und wenn Sie dasselbe Feld mit einem anderen Feld zusammenfassen möchten, welches dasselbe dann ist

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

dann wird dies ausgegeben Geben Sie hier die Bildbeschreibung ein

Shafiqul Islam
quelle
1
Nett. Nur zu Ihrer Information, CONCAT, das hier verwendet wird, ist eine in MySQL integrierte Funktion, keine PHP-Funktion.
Yousaf Hassan
6

In PHP haben wir zwei Möglichkeiten, Tabellenspalten zu verketten.

Erste Option mit Abfrage

In der Abfrage wird das Schlüsselwort CONCAT verwendet, um zwei Spalten zu verketten

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

Zweite Option mit Symbol (.)

Weisen Sie nach dem Abrufen der Daten aus der Datenbanktabelle die Werte der Variablen zu, verwenden Sie dann das Symbol (.) Und verketten Sie die Werte

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

Anstelle des Unterstrichs (_) werden Leerzeichen, Komma, Buchstaben, Zahlen usw. verwendet

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