Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะเชื่อมข้อมูลมากกว่า 2 ฟิลด์กับ SQL ได้อย่างไร


หากต้องการเชื่อมข้อมูลมากกว่า 2 ฟิลด์กับ SQL คุณสามารถใช้ฟังก์ชัน CONCAT() หรือ CONCAT_WS() ไวยากรณ์มีดังนี้ มาดูการใช้ CONCAT() กันก่อน

เลือก CONCAT(yourColumnName1,'/', yourColumnName2, '/', yourColumnName3, '/',......N) AS anyVariableName FROM yourTableName;

ไวยากรณ์มีดังนี้:

เลือก CONCAT_WS('/', yourColumnName1, yourColumnName2,.....N) AS anyVariableName FROM yourTableName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:

mysql> สร้างตาราง MoreThan2ColumnConcat -> ( -> Id int, -> Name varchar(20), -> Age int, -> Marks int -> );Query OK, 0 แถวได้รับผลกระทบ (2.59 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:

mysql> แทรกลงในค่า MoreThan2ColumnConcat (1,'John',24,89); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า MoreThan2ColumnConcat (11, 'Larry', 25,90); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.21 วินาที)mysql> แทรกลงในค่า MoreThan2ColumnConcat (15,'Mike',26,79); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า MoreThan2ColumnConcat (16, 'Sam', 21,99);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:

mysql> เลือก *จาก MoreThan2ColumnConcat;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+------+-------+------+-------+| รหัส | ชื่อ | อายุ | เครื่องหมาย |+------+-------+------+-------+| 1 | จอห์น | 24 | 89 || 11 | แลร์รี่ | 25 | 90 || 15 | ไมค์ | 26 | 79 || 16 | แซม | 21 | 99 |+------+-------+------+-------+4 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อเชื่อมข้อมูลมากกว่าสองฟิลด์ด้วย CONCAT()

mysql> เลือก concat(Id,'/', Name, '/', Age, '/', Marks) เป็น ConcatMoreFields จาก MoreThan2ColumnConcat;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+-----------------+| ConcatMoreFields |+-----------------+| 1/John/24/89 || 11/Larry/25/90 || 15/ไมค์/26/79 || 16/Sam/21/99 |+-----------------+4 แถวในชุด (0.00 วินาที)

ให้เราดูการสืบค้นเพื่อเชื่อมข้อมูลมากกว่าสองฟิลด์โดยใช้ CONCAT_WS()

mysql> เลือก concat_ws('/',Id,Name,Age,Marks) เป็น ConcatMoreFields จาก MoreThan2ColumnConcat;

ต่อไปนี้เป็นผลลัพธ์:

<ก่อนหน้า>+-----------------+| ConcatMoreFields |+-----------------+| 1/John/24/89 || 11/Larry/25/90 || 15/ไมค์/26/79 || 16/Sam/21/99 |+-----------------+4 แถวในชุด (0.00 วินาที)