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

แสดงค่าคอลัมน์ซ้ำ 2 ครั้งในคำสั่ง SELECT MySQL ด้วย CONCAT()

การแสดงค่าคอลัมน์ซ้ำ 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 + '~' + Value
  • GROUP BY Value : จัดกลุ่มค่าที่เหมือนกัน แสดงเพียง 1 แถวต่อค่า
  • ผลลัพธ์คือ 100~100 และ 200~200
  • หากต้องการแสดงทุกแถว (ไม่จัดกลุ่ม) ให้เอา GROUP BY ออก