MySQL เชื่อมต่อสองคอลัมน์


86

มีสองคอลัมน์ในตาราง MySQL: SUBJECTและYEAR.

ฉันต้องการสร้างหมายเลขเฉพาะที่เป็นตัวอักษรและตัวเลขซึ่งเก็บข้อมูลที่ต่อกันจาก SUBJECT และ YEAR

ฉันจะทำเช่นนี้ได้อย่างไร? เป็นไปได้ไหมที่จะใช้ตัวดำเนินการง่ายๆเช่น+?

คำตอบ:


184

คุณสามารถใช้CONCATฟังก์ชั่นดังนี้:

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

อัปเดต:

เพื่อให้ได้ผลลัพธ์นั้นคุณสามารถลองสิ่งนี้:

SET @rn := 0;

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

1
คำตอบแรกของคุณSELECT CONCACT(SUBJECT, ' ', YEAR)ช่วยฉันได้จริงๆ +1
FastTrack

4
ผลลัพธ์จะเป็นโมฆะเมื่อแถวใด ๆ ว่างบนฟิลด์ที่จะเชื่อมต่อกัน ทางออกสำหรับปัญหานั้นคืออะไร?
TSR

2
@TSR คำถามดีๆ! ฉันพบคำตอบสำหรับคุณ หากฟิลด์ใดฟิลด์หนึ่งเป็นค่าว่างคุณจะต้องใช้ MySQL IFNULL op ข้างต้นจะเป็นดังนี้: SELECT CONCAT (IFNULL ( SUBJECT, ''), '-', IFNULL ( YEAR, ''), '-', LPAD (@rn: = @ rn + 1,3, '0')) จากtable
Logan

17

คุณสามารถใช้ php ที่สร้างขึ้นใน CONCAT () สำหรับสิ่งนี้

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

เปลี่ยนชื่อไฟล์ตามความต้องการของคุณ

แล้วผลลัพธ์ก็คือ

ป้อนคำอธิบายภาพที่นี่

และหากคุณต้องการต่อไฟล์เดียวกันโดยใช้ฟิลด์อื่นที่เหมือนกัน

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

แล้วนี่คือผลลัพธ์ ป้อนคำอธิบายภาพที่นี่


1
ดี. สำหรับข้อมูลของคุณ CONCAT ที่ใช้ที่นี่คือฟังก์ชัน MySQL ในตัวไม่ใช่ฟังก์ชัน php
Yousaf Hassan

6

ใน php เรามีสองตัวเลือกในการต่อคอลัมน์ในตาราง

ตัวเลือกแรกโดยใช้แบบสอบถาม

ในแบบสอบถามคำหลักCONCATใช้เพื่อเชื่อมสองคอลัมน์เข้าด้วยกัน

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

ตัวเลือกที่สองโดยใช้สัญลักษณ์ (.)

หลังจากดึงข้อมูลจากตารางฐานข้อมูลแล้วให้กำหนดค่าให้กับตัวแปรจากนั้นใช้สัญลักษณ์ (.)และเชื่อมค่าเข้าด้วยกัน

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

แทนที่จะใช้ขีดล่าง (_) เราจะใช้ช่องว่างลูกน้ำตัวอักษรตัวเลข .. ฯลฯ


0

ในแบบสอบถามCONCAT_WS()ฟังก์ชัน

ฟังก์ชันนี้ไม่เพียง แต่เพิ่มค่าสตริงหลายค่าและทำให้เป็นค่าสตริงเดียว นอกจากนี้ยังให้คุณกำหนดตัวคั่น (”“,”,“,” -“,” _“ ฯลฯ )

ไวยากรณ์ -

CONCAT_WS( SEPERATOR, column1, column2, ... )

ตัวอย่าง

SELECT 
topic, 
CONCAT_WS( " ", subject, year ) AS subject_year 
FROM table

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.