หากต้องการเชื่อมข้อมูลมากกว่า 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 วินาที)