ใช้ CONCAT() รวมคอลัมน์สตริง และ HAVING กรองผลลัพธ์หลังรวม (ไม่ใช่ WHERE เพราะกรองหลัง Aggregation/Expression)
ตัวอย่างการสร้างตาราง
mysql> create table DemoTable (
FirstName varchar(100),
CountryName varchar(100) );
Query OK, 0 rows affected (0.56 sec)
เพิ่มข้อมูลชื่อและประเทศ
mysql> insert into DemoTable values('Adam','US');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('David','AUS');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Chris','UK');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('John','US');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('Carol','AUS');
Query OK, 1 row affected (0.14 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
+-----------+-------------+ | FirstName | CountryName | +-----------+-------------+ | Adam | US | | David | AUS | | Chris | UK | | John | US | | Carol | AUS | +-----------+-------------+ 5 rows in set (0.00 sec)
คำสั่ง CONCAT แล้ว HAVING กรองเฉพาะที่มี 'John'
mysql> select concat(FirstName, ' ', CountryName) AS NameWithCountry from DemoTable having NameWithCountry LIKE '%John%';
ผลลัพธ์
+-----------------+ | NameWithCountry | +-----------------+ | John US | +-----------------+ 1 row in set (0.00 sec)
คำอธิบาย: HAVING ใช้กรองผลลัพธ์ของ SELECT (หลังคำนวณ Expression) ในขณะที่ WHERE กรองก่อน SELECT ในที่นี้ต้องกรองชื่อที่รวมแล้ว (NameWithCountry) จึงใช้ HAVING
หมายเหตุ: หากกรองแค่ FirstName = 'John' ให้ใช้ WHERE ปกติ จะมีประสิทธิภาพดีกว่า