2012-04-27 13 views
70

Istnieją dwie kolumny w tabeli MySQL: SUBJECT i YEAR.MySQL, Concatenate two columns

Chcę wygenerować alfanumeryczny unikalny numer, który zawiera połączone dane z SUBJECT i YEAR.

Jak mogę to zrobić? Czy można użyć prostego operatora, takiego jak +?

Odpowiedz

151

Można użyć funkcji CONCAT tak:

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

Aktualizacja:

Aby uzyskać ten rezultat można spróbować to:

SET @rn := 0; 

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

Twoja pierwsza odpowiedź "SELECT CONCACT (SUBJECT,", YEAR) naprawdę mi pomogła. +1 – FastTrack

+1

Wynik jest zerowy, gdy dowolny wiersz jest pusty w polach do konkatowania. Jakie jest rozwiązanie tego problemu? – TSR

-8

najpierw utworzyć kolumnę w tabeli newcol_name jak to - spróbuj tego - update table_name Set 'newcol_name' = CONCACT(SUBJECT, ' ', YEAR) ;

+1

Nie! Jeśli dla jakiejkolwiek racji (np. Przeszukując to pole) potrzebujesz nowej kolumny, musisz użyć WIDOKU: https://dev.mysql.com/doc/refman/5.7/en/create-view.html – rebe100x

3

W php mamy dwie opcje łączenia kolumn tabeli.

Pierwsza opcja za pomocą Query

W zapytaniu CONCAT kluczowe stosowane do łączenia dwóch kolumn

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

Druga opcja za pomocą symbolu().

Po pobrać dane z tabeli bazy danych, przypisz wartości do zmiennej, a następnie użyj (.) Symbol i złączyć wartości

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

Zamiast podkreślenia (_), będziemy używać spacji, przecinek, listów, numbers..etc

2

Można użyć php zbudowany w CONCAT() dla tego produktu.

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

zmiana złożony nazwę jako wymóg

wtedy wynik jest

enter image description here

i jeśli chcesz Concat samo złożony przy użyciu innej dziedzinie, który sam potem

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

to jest wyjście enter image description here

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

Podczas gdy ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać link do odsyłacza. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. - [Z recenzji] (/ opinia/niskiej jakości-posts/18796600) –

Powiązane problemy