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

MySQL में कॉलम में स्ट्रिंग के बाएं और मध्य भाग में '%' वर्ण को कैसे एस्केप करें?

MySQL में LIKE पैटर्न मिलान में '%' वाइल्डकार्ड को एस्केप करना

जब किसी कॉलम में शाब्दिक '%' वर्ण हो और आप LIKE से खोजें, तो '%' को वाइल्डकार्ड के बजाय शाब्दिक वर्ण के रूप में मिलान करने के लिए बैकस्लैश (\) से एस्केप करें।

उदाहरण के साथ पूर्ण कार्यान्वयन

टेबल बनाना

mysql> CREATE TABLE DemoTable629 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentSubject TEXT
);

रिकॉर्ड डालना (अलग-अलग स्थानों पर % के साथ)

mysql> INSERT INTO DemoTable629(StudentSubject) VALUES('MySQL%'), ('Spring%Hibernate'), ('%Java');

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

mysql> SELECT * FROM DemoTable629;

आउटपुट:

+-----------+------------------+
| StudentId | StudentSubject   |
+-----------+------------------+
| 1         | MySQL%           |
| 2         | Spring%Hibernate |
| 3         | %Java            |
+-----------+------------------+
3 rows in set (0.00 sec)

अंत में '%' वाले रिकॉर्ड खोजना (एस्केप के साथ)

mysql> SELECT * FROM DemoTable629 
WHERE StudentSubject LIKE '%\%';

आउटपुट:

+-----------+--------------+
| StudentId | StudentSubject |
+-----------+--------------+
| 1         | MySQL%       |
+-----------+--------------+
1 row in set (0.00 sec)

एस्केप नियम:

  • \% - शाब्दिक '%' वर्ण से मिलान
  • \_ - शाब्दिक '_' वर्ण से मिलान (अंडरस्कोर भी वाइल्डकार्ड है)
  • \\ - शाब्दिक बैकस्लैश से मिलान
  • डिफ़ॉल्ट एस्केप वर्ण बैकस्लैश है

अन्य स्थानों पर '%' खोजना

-- शुरुआत में '%'
SELECT * FROM DemoTable629 WHERE StudentSubject LIKE '\%%';

-- मध्य में '%' (Spring%Hibernate)
SELECT * FROM DemoTable629 WHERE StudentSubject LIKE '%\%%';

-- कहीं भी '%'
SELECT * FROM DemoTable629 WHERE StudentSubject LIKE '%\%%';

कस्टम एस्केप वर्ण उपयोग करना

SELECT * FROM DemoTable629 
WHERE StudentSubject LIKE '%|%' ESCAPE '|';

यहाँ | एस्केप वर्ण है, तो |% शाब्दिक '%' से मिलान करेगा।

RLIKE/REGEXP विकल्प

-- रेगुलर एक्सप्रेशन में % विशेष नहीं है
SELECT * FROM DemoTable629 WHERE StudentSubject RLIKE '%';  -- अंत में %
SELECT * FROM DemoTable629 WHERE StudentSubject RLIKE '^%';  -- शुरुआत में %
SELECT * FROM DemoTable629 WHERE StudentSubject RLIKE '%';   -- कहीं भी %

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

  • उत्पाद कोड खोजना: 'PRD-%OFF' (अंत में %OFF)
  • टैग खोजना: '%sale%' (शाब्दिक %sale%)
  • वाइल्डकार्ड खोज इंटरफेस बनाना जहां उपयोगकर्ता शाब्दिक % खोज सके

नोट: LIKE पैटर्न में एस्केप न करने पर '%' किसी भी अनुक्रम से मिलान करता है, जो अनपेक्षित परिणाम दे सकता है।

  1. - MySQL में FLOAT कॉलम को राउंड करें और परिणाम नए कॉलम में प्रदर्शित करें

    ROUND() फ़ंक्शन का उपयोग करके फ्लोट मानों को निर्दिष्ट दशमलव स्थानों तक राउंड करें और परिणाम को नए कॉलम में प्रदर्शित करें। टेबल बनाना और डेटा डालना CREATE TABLE DemoTable (Value FLOAT); Query OK, 0 rows affected (0.95 sec) INSERT INTO DemoTable VALUES(12.4567),(124.7884),(45.64643); सभी रिकॉर्

  1. - MySQL में LEFT() फ़ंक्शन का उपयोग करके पहले वर्ण के आधार पर कॉलम मान फ़िल्टर करना

    MySQL LEFT() फ़ंक्शन के साथ स्ट्रिंग प्रीफिक्स फ़िल्टरिंग MySQL का LEFT() फ़ंक्शन किसी स्ट्रिंग से निर्दिष्ट संख्या में बाएं वर्ण निकालता है। यह पहले वर्ण (या पहले N वर्ण) के आधार पर रिकॉर्ड्स फ़िल्टर करने के लिए उपयोगी है। उदाहरण: J से शुरू होने वाले नाम ढूंढना पहले एक कर्मचारी टेबल बनाते हैं: SE

  1. - MySQL कॉलम में विशिष्ट वर्ण को कैसे बदलें?

    MySQL में किसी कॉलम के भीतर विशिष्ट वर्ण या सबस्ट्रिंग को बदलने के लिए REPLACE() फंक्शन का उपयोग UPDATE स्टेटमेंट के साथ करें। यह डेटा क्लीनिंग और फॉर्मेटिंग के लिए बहुत उपयोगी है। उदाहरण: अंडरस्कोर (_) को हटाना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1899 ( Code VARCHAR(20) ); अंडर