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

MySQL में RIGHT() फंक्शन से विशिष्ट अंतिम अंक वाले रिकॉर्ड्स खोजना

RIGHT() फंक्शन का उपयोग

RIGHT(str, len) फंक्शन स्ट्रिंग के दाएं छोर से निर्दिष्ट संख्या में वर्ण लौटाता है। अंतिम अंक/वर्ण जांचने के लिए उपयोगी।

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable823(Value VARCHAR(100));
Query OK, 0 rows affected (0.54 sec)

रिकॉर्ड्स इन्सर्ट करना

mysql> INSERT INTO DemoTable823 VALUES('9847826'),('84747464'),('9899889883'),('123456');
Query OK, 4 rows affected (...)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable823;
+------------+
| Value      |
+------------+
| 9847826    |
| 84747464   |
| 9899889883 |
| 123456     |
+------------+
4 rows in set (0.00 sec)

अंतिम अंक '6' वाले रिकॉर्ड्स खोजने की क्वेरी

mysql> SELECT * FROM DemoTable823 WHERE RIGHT(Value, 1) = '6';

परिणाम

+---------+
| Value   |
+---------+
| 9847826 |
| 123456  |
+---------+
2 rows in set (0.00 sec)

RIGHT() फंक्शन विवरण

RIGHT('9847826', 1)  -- '6'
RIGHT('9847826', 2)  -- '26'
RIGHT('9847826', 3)  -- '826'
RIGHT('abc', 5)      -- 'abc' (स्ट्रिंग से छोटा len होने पर पूरी स्ट्रिंग)

संबंधित स्ट्रिंग फंक्शन्स

फंक्शनउद्देश्यउदाहरण
LEFT(str, len)बाएं से वर्णLEFT('9847826', 2) = '98'
SUBSTRING(str, pos, len)कहीं से भी सबस्ट्रिंगSUBSTRING('9847826', 3, 2) = '47'
SUBSTR(str, pos, len)SUBSTRING का पर्याय
MID(str, pos, len)SUBSTRING का पर्याय

अंतिम N अंक जांचना

अंतिम 2 अंक '26' हों

SELECT * FROM DemoTable823 WHERE RIGHT(Value, 2) = '26';

अंतिम 3 अंक सूची में हों

SELECT * FROM DemoTable823 WHERE RIGHT(Value, 3) IN ('826', '456', '789');

संख्यात्मक कॉलम के लिए (कास्टिंग आवश्यक)

-- संख्यात्मक कॉलम को स्ट्रिंग में बदलें
SELECT * FROM DemoTable823 WHERE RIGHT(CAST(Value AS CHAR), 1) = '6';

-- या मॉड्यूलो ऑपरेटर (केवल संख्या के लिए)
SELECT * FROM DemoTable823 WHERE CAST(Value AS UNSIGNED) % 10 = 6;

प्रदर्शन विचार

  • RIGHT() फंक्शन कॉल इंडेक्स उपयोग रोकता है
  • बड़े टेबल्स पर, अंतिम अंक के लिए GENERATED COLUMN + इंडेक्स बनाएं:
    ALTER TABLE DemoTable823 
    ADD LastDigit TINYINT AS (RIGHT(Value, 1)) STORED,
    ADD INDEX idx_last_digit (LastDigit);
  • संख्यात्मक कॉलम के लिए Value % 10 = 6 भी इंडेक्स उपयोग नहीं कर सकता

उपयोग के मामले

  • चेक डिजिट वैलिडेशन (ISBN, क्रेडिट कार्ड, आदि)
  • फोन नंबर एरिया कोड/अंतिम अंक फिल्टर
  • सीरियल नंबर पैटर्न मिलान
  • पिन कोड/जिप कोड सफिक्स खोज
  1. MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें MySQL में विशिष्ट कॉलम नाम वाली टेबल कैसे खोजें

    information_schema.columns टेबल को क्वेरी करके डेटाबेस में विशिष्ट कॉलम नाम वाली सभी टेबल खोजें। सिंटैक्स SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name LIKE %yourSearchValue% AND table_schema = DATABASE(); उदाहरण: Client वाली कॉलम खोजना SELECT DISTINCT table_name FR

  1. - MySQL में नाम कॉलम से अंतिम स्पेस से पहले का भाग कैसे चुनें?

    MySQL में पूर्ण नाम (FullName) कॉलम से अंतिम स्पेस से पहले का भाग (यानी पहला/मध्य नाम) निकालने के लिए, LEFT(), LENGTH(), LOCATE(), REVERSE() फंक्शन संयोजित करें। उदाहरण: Robert Downey, Jr. → Robert Downey, डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1939 (FullName VARCHAR(20)); डेटा इन्सर्ट

  1. - MySQL में GROUP BY HAVING COUNT से अद्वितीय अंतिम नाम वाले उपयोगकर्ता खोजें

    सिंटैक्स select max(tbl.firstName), tbl.lastName, count(distinct tbl.firstName) as CountOfFirstName from demo76 as tbl group by tbl.lastName having count(distinct tbl.firstName) = 1; उदाहरण डेटा insert into demo76 values(John,Doe), (David,Smith), (Adam,Smith); परिणाम: केवल अद्वितीय अंतिम नाम (Do