การแสดงค่าคอลัมน์ซ้ำ 2 ครั้งคั่นด้วยเครื่องหมายทิลด์ (~) ด้วย CONCAT()
ฟังก์ชัน CONCAT() ใช้ต่อสตริงหลายตัวเข้าด้วยกัน ในที่นี้ใช้ต่อค่าคอลัมน์กับตัวเอง คั่นด้วย '~' แล้วจัดกลุ่มด้วย GROUP BY เพื่อแสดงค่าที่ไม่ซ้ำ
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (Value INT);
Query OK, 0 rows affected (0.73 sec)
mysql> INSERT INTO DemoTable VALUES(100);
mysql> INSERT INTO DemoTable VALUES(200);
mysql> INSERT INTO DemoTable VALUES(100);
mysql> INSERT INTO DemoTable VALUES(200);
mysql> INSERT INTO DemoTable VALUES(200);
mysql> INSERT INTO DemoTable VALUES(100);
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+-------+
| Value |
+-------+
| 100 |
| 200 |
| 100 |
| 200 |
| 200 |
| 100 |
+-------+
6 rows in set (0.00 sec)
คำสั่งแสดงค่า Value ซ้ำ 2 ครั้ง คั่น ~ และจัดกลุ่ม
mysql> SELECT CONCAT(Value, '~', Value) FROM DemoTable GROUP BY Value;
ผลลัพธ์:
+-------------------------+
| concat(Value,'~',Value) |
+-------------------------+
| 100~100 |
| 200~200 |
+-------------------------+
2 rows in set (0.00 sec)
คำอธิบาย
CONCAT(Value, '~', Value): ต่อค่า Value + '~' + ValueGROUP BY Value: จัดกลุ่มค่าที่เหมือนกัน แสดงเพียง 1 แถวต่อค่า- ผลลัพธ์คือ 100~100 และ 200~200
- หากต้องการแสดงทุกแถว (ไม่จัดกลุ่ม) ให้เอา GROUP BY ออก