MySQL में CONCAT() और HAVING के साथ कॉलम मान जोड़कर फ़िल्टर करना
CONCAT() फ़ंक्शन का उपयोग करके दो कॉलम के मानों को जोड़ा जा सकता है, और HAVING क्लॉज के साथ संयुक्त परिणाम पर फ़िल्टर लागू किया जा सकता है।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
FirstName VARCHAR(100),
CountryName VARCHAR(100)
);
रिकॉर्ड डालना
mysql> INSERT INTO DemoTable VALUES('Adam', 'US');
mysql> INSERT INTO DemoTable VALUES('David', 'AUS');
mysql> INSERT INTO DemoTable VALUES('Chris', 'UK');
mysql> INSERT INTO DemoTable VALUES('John', 'US');
mysql> INSERT INTO DemoTable VALUES('Carol', 'AUS');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+-------------+ | FirstName | CountryName | +-----------+-------------+ | Adam | US | | David | AUS | | Chris | UK | | John | US | | Carol | AUS | +-----------+-------------+
नाम और देश जोड़कर 'John' वाले खोजने के लिए क्वेरी
mysql> SELECT CONCAT(FirstName, ' ', CountryName) AS NameWithCountry FROM DemoTable HAVING NameWithCountry LIKE '%John%';
आउटपुट:
+-----------------+ | NameWithCountry | +-----------------+ | John US | +-----------------+
HAVING vs WHERE
| क्लॉज | उपयोग | एलियास उपयोग |
|---|---|---|
| WHERE | समूह से पहले फ़िल्टर | नहीं (कॉलम नाम) |
| HAVING | समूह/एग्रीगेट के बाद फ़िल्टर | हां (एलियास नाम) |
यहां HAVING इसलिए उपयोग किया गया क्योंकि फ़िल्टर CONCAT() के परिणाम (एलियास NameWithCountry) पर है।
समान परिणाम WHERE के साथ