MySQL, Nối hai cột


85

Có hai cột trong bảng MySQL: SUBJECTYEAR.

Tôi muốn tạo một số duy nhất gồm cả chữ và số chứa dữ liệu được nối từ SUBJECT và YEAR.

Tôi có thể làm cái này như thế nào? Có thể sử dụng một toán tử đơn giản như thế +nào?

Câu trả lời:


183

Bạn có thể sử dụng CONCATchức năng như sau:

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

Cập nhật:

Để có được kết quả đó, bạn có thể thử cách này:

SET @rn := 0;

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

1
Câu trả lời đầu tiên của bạn, SELECT CONCACT(SUBJECT, ' ', YEAR)thực sự đã giúp tôi ra ngoài. +1
FastTrack

4
Kết quả là null khi bất kỳ hàng nào trống trên các trường để nối. Giải pháp cho vấn đề đó là gì?
TSR

2
@TSR Câu hỏi hay! Tôi đã tìm thấy câu trả lời cho bạn. Nếu một trong các trường xảy ra rỗng, bạn sẽ cần sử dụng op MySQL IFNULL. Vì vậy, ở trên sẽ giống như: CHỌN CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) TỪtable
Logan

17

Bạn có thể sử dụng php được xây dựng trong CONCAT () cho việc này.

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

thay đổi tên đã nộp theo yêu cầu của bạn

sau đó kết quả là

nhập mô tả hình ảnh ở đây

và nếu bạn muốn kết hợp cùng một trường đã nộp bằng cách sử dụng trường khác thì

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

thì đây là đầu ra nhập mô tả hình ảnh ở đây


1
Đẹp. Đối với thông tin của bạn, CONCAT được sử dụng ở đây là hàm MySQL được tích hợp sẵn, không phải là hàm php.
Yousaf Hassan

6

Trong php, chúng ta có hai tùy chọn để nối các cột trong bảng.

Tùy chọn đầu tiên sử dụng Truy vấn

Trong truy vấn, từ khóa CONCAT được sử dụng để nối hai cột

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

Tùy chọn thứ hai sử dụng ký hiệu (.)

Sau khi tìm nạp dữ liệu từ bảng cơ sở dữ liệu, hãy gán các giá trị cho biến, sau đó sử dụng ký hiệu (.) Và nối các giá trị

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

Thay vì gạch dưới (_), chúng ta sẽ sử dụng dấu cách, dấu phẩy, chữ cái, số..vv


-1
$crud->set_relation('id','students','{first_name} {last_name}');
$crud->display_as('student_id','Students Name');
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.