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

MySQL में LIKE क्लॉज को दो बार उपयोग करके दोहराए गए फर्स्टनेम और लास्टनेम से विशिष्ट नाम प्रदर्शित करना

दो LIKE क्लॉज के साथ फर्स्टनेम और लास्टनेम दोनों से फ़िल्टर करना

पहले नाम और अंतिम नाम दोनों के आधार पर रिकॉर्ड खोजने के लिए दो LIKE शर्तों को AND से जोड़ें।

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(30)
);

रिकॉर्ड्स इन्सर्ट करें:

mysql> INSERT INTO DemoTable (StudentName) VALUES ('John Smith');
mysql> INSERT INTO DemoTable (StudentName) VALUES ('David Miller');
mysql> INSERT INTO DemoTable VALUES ('Carol Taylor');
mysql> INSERT INTO DemoTable VALUES ('John Doe');
mysql> INSERT INTO DemoTable VALUES ('Chris Brown');
mysql> INSERT INTO DemoTable VALUES ('Adam Doe');

सभी रिकॉर्ड्स देखें:

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+---------------+
| StudentId | StudentName   |
+-----------+---------------+
| 1         | John Smith    |
| 2         | David Miller  |
| 3         | Carol Taylor  |
| 4         | John Doe      |
| 5         | Chris Brown   |
| 6         | Adam Doe      |
+-----------+---------------+

पहला नाम "John" और अंतिम नाम "Doe" वाले रिकॉर्ड के लिए क्वेरी:

mysql> SELECT * FROM DemoTable
    WHERE StudentName LIKE '%John%' AND StudentName LIKE '%Doe%';

आउटपुट:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 4         | John Doe    |
+-----------+-------------+

व्याख्या:

  • LIKE '%John%' - "John" कहीं भी हो (शुरुआत, मध्य, अंत)
  • LIKE '%Doe%' - "Doe" कहीं भी हो
  • AND: दोनों शर्तें पूरी होनी चाहिए
  • केवल "John Doe" दोनों शर्तों को पूरा करता है
  • "John Smith" में "Doe" नहीं है, "Adam Doe" में "John" नहीं है

सीमाएं और सुधार:

  • यह "Johnny Doering" जैसे नामों से भी मेल खाएगा (आंशिक मैच)
  • सटीक फर्स्ट/लास्ट नेम मैच के लिए, नामों को अलग कॉलम्स में स्टोर करें
  • या REGEXP का उपयोग करें: WHERE StudentName REGEXP '^John .* Doe$'

बेहतर डिजाइन: फर्स्ट नेम और लास्ट नेम के लिए अलग कॉलम्स रखें:

CREATE TABLE Students (
    FirstName VARCHAR(30),
    LastName VARCHAR(30)
);
-- तब क्वेरी सरल: WHERE FirstName = 'John' AND LastName = 'Doe'
  1. - MySQL में LIKE के साथ एकाधिक शब्दों से रिकॉर्ड कैसे फ़िल्टर करें?

    MySQL में किसी कॉलम को एकाधिक पैटर्न/शब्दों के विरुद्ध फ़िल्टर करने के लिए, RLIKE (या REGEXP) ऑपरेटर का उपयोग करें जो रेगुलर एक्सप्रेशन ऑल्टरनेशन (|) सपोर्ट करता है। यह एकाधिक LIKE शर्तों से अधिक संक्षिप्त और लचीला है। उदाहरण: SQL या Python वाले विषय खोजना डेमो टेबल बनाएं: mysql> CREATE TABLE

  1. - MySQL में वर्तमान वर्ष से डायनामिक टेबल नाम बनाएं जैसे 2019

    MySQL में PREPARE स्टेटमेंट का उपयोग करके डायनामिक टेबल नाम बनाना MySQL में वर्तमान वर्ष के आधार पर डायनामिक टेबल नाम बनाने के लिए PREPARE स्टेटमेंट का उपयोग किया जाता है। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1959 ( UserName varchar(20) ); Query OK, 0 rows affected (0.00 sec)

  1. - MySQL क्वेरी में दो बार LIKE क्लॉज का उपयोग

    OR ऑपरेटर से एकाधिक LIKE शर्तें जोड़ें एक कॉलम पर दो अलग-अलग पैटर्न से फ़िल्टर करने के लिए OR के साथ दो LIKE क्लॉज का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable2009 ( Name varchar(20) ); Query OK, 0 rows affected (0.51 sec) mysql> insert into DemoTable2009 values(John