Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में HAVING LENGTH() का उपयोग कैसे करें?

GROUP BY के साथ HAVING LENGTH() फिल्टर

MySQL में ग्रुपिंग के बाद टेक्स्ट कॉलम की लंबाई के आधार पर ग्रुप्स को फिल्टर करने के लिए HAVING LENGTH() का उपयोग करें।

टेबल बनाना और डेटा इन्सर्ट करना

CREATE TABLE DemoTable (Title TEXT);

INSERT INTO DemoTable VALUES('Introduction to MySQL');
INSERT INTO DemoTable VALUES('Introduction to Java');
INSERT INTO DemoTable VALUES('Introduction to SQL');
INSERT INTO DemoTable VALUES('Introduction to Python');
INSERT INTO DemoTable VALUES('Introduction to SQL');
INSERT INTO DemoTable VALUES('Introduction to Java');

मौजूदा डेटा

+------------------------+
| Title                  |
+------------------------+
| Introduction to MySQL  |
| Introduction to Java   |
| Introduction to SQL    |
| Introduction to Python |
| Introduction to SQL    |
| Introduction to Java   |
+------------------------+

क्वेरी: 21 कैरेक्टर से कम लंबाई वाले टाइटल

SELECT * FROM DemoTable 
GROUP BY LENGTH(Title) 
HAVING LENGTH(Title) < 21;

आउटपुट

+----------------------+
| Title                |
+----------------------+
| Introduction to SQL  |
| Introduction to Java |
+----------------------+

लंबाई विश्लेषण

  • "Introduction to MySQL" = 21 कैरेक्टर (शामिल नहीं)
  • "Introduction to Java" = 20 कैरेक्टर (शामिल)
  • "Introduction to SQL" = 19 कैरेक्टर (शामिल)
  • "Introduction to Python" = 22 कैरेक्टर (शामिल नहीं)

महत्वपूर्ण बिंदु

  • GROUP BY LENGTH(Title) लंबाई के आधार पर ग्रुप बनाता है
  • HAVING एग्रीगेशन के बाद फिल्टर करता है (WHERE से पहले नहीं)
  • डुप्लीकेट टाइटल्स ("Introduction to SQL" दो बार) ग्रुपिंग के कारण एक ही बार दिखते हैं
  • अगर सभी रिकॉर्ड चाहिए (ग्रुपिंग के बिना), WHERE उपयोग करें

WHERE के साथ तुलना (ग्रुपिंग के बिना)

SELECT * FROM DemoTable 
WHERE LENGTH(Title) < 21;
+----------------------+
| Title                |
+----------------------+
| Introduction to Java |
| Introduction to SQL  |
| Introduction to SQL  |
| Introduction to Java |
+----------------------+

व्यावहारिक उपयोग

-- बहुत लंबे या बहुत छोटे नाम फिल्टर करना
SELECT Name FROM Users 
GROUP BY LENGTH(Name) 
HAVING LENGTH(Name) BETWEEN 2 AND 50;
  1. - MySQL में उपयोगकर्ता वेरिएबल से दो फील्ड मानों को कैसे स्वैप करें?

    MySQL में दो कॉलम मान स्वैप करना: उपयोगकर्ता वेरिएबल का उपयोग MySQL में एक ही पंक्ति के दो कॉलम मानों को स्वैप करने के लिए उपयोगकर्ता वेरिएबल (@var) का उपयोग करके अस्थायी भंडारण किया जा सकता है। उदाहरण: Id=2 वाली पंक्ति में Number1 और Number2 स्वैप करें टेबल बनाएं: CREATE TABLE DemoTable ( Id I

  1. - MySQL में STR_TO_DATE() और REPLACE() का उपयोग करके CHAR फ़ील्ड को DATETIME फ़ील्ड में परिवर्तित करना

    MySQL में CHAR से DATETIME रूपांतरण जब दिनांक-स्ट्रिंग्स गैर-मानक प्रारूप में CHAR/VARCHAR कॉलम में संग्रहीत होती हैं (जैसे MM/DD/YYYY HH:MI), तो उन्हें मानक DATETIME में परिवर्तित करने के लिए STR_TO_DATE() के साथ REPLACE() का उपयोग करें। उदाहरण: स्लैश-पृथक दिनांक-स्ट्रिंग्स परिवर्तित करना SELECT

  1. - MySQL में DOUBLE लंबाई लागू करें और सेट करें

    MySQL में DOUBLE लागू करने के लिए, सिंटैक्स निम्न है: create table yourTableName ( yourColumnName double(5,2) unsigned ); आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1814 ( Amount double(5,2) unsigned ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल म