Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पैटर्न का उपयोग करके सर्च ऑपरेशन के लिए लाइक इन मायएसक्यूएल का उपयोग करना

यह ट्यूटोरियल श्रृंखला का हिस्सा है MySQL का उपयोग करके बेसिक SQL क्वेरीज़ सीखें। इस ट्यूटोरियल में, हम LIKE कंडीशन के साथ WHERE क्लॉज का उपयोग करके MySQL में टेबल डेटा पर सर्च ऑपरेशन करने के लिए SQL क्वेरी पर चर्चा करेंगे।

समान स्थिति

पसंद करें और पसंद नहीं शर्तों का उपयोग निर्दिष्ट पैटर्न का उपयोग करके तालिका डेटा पर खोज संचालन करने के लिए किया जा सकता है।

# LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` LIKE '<pattern>';

# NOT LIKE - Syntax
SELECT * FROM `table_name` WHERE `column_name` NOT LIKE '<pattern>';

क्वेरी स्पष्टीकरण

पसंद करें स्थिति का उपयोग निर्दिष्ट पैटर्न का उपयोग करके किसी विशिष्ट कॉलम में खोजने के लिए किया जा सकता है। हम सर्च ऑपरेशन करने के लिए WHERE के साथ LIKE कंडीशन का उपयोग कर सकते हैं।

हमें पंक्तियों को हटाने के लिए अर्हता प्राप्त करने के लिए WHERE क्लॉज का उपयोग करके कम से कम एक शर्त निर्दिष्ट करनी होगी अन्यथा पूरी तालिका मिटा दी जाएगी। तालिका की सभी पंक्तियाँ बिना किसी शर्त के हटा दी जाती हैं।

हम खोज परिणामों को परिशोधित करने के लिए नीचे दिए गए वाइल्डकार्ड का उपयोग LIKE शर्त के साथ कर सकते हैं।

प्रतिशत (%) - यह शून्य, एक या एकाधिक वर्णों का प्रतिनिधित्व करता है

अंडरस्कोर (_) - यह एक ही वर्ण का प्रतिनिधित्व करता है

हम खोज परिणामों में वाइल्डकार्ड शामिल करने के लिए ESCAPE कीवर्ड का भी उपयोग कर सकते हैं।

उदाहरण

यह खंड WHERE क्लॉज के साथ LIKE शर्त का उपयोग करके खोज संचालन करने के लिए उदाहरण प्रदान करता है। उपयोगकर्ता डेटा संग्रहीत करने के लिए आईडी, प्रथम नाम, अंतिम नाम और सक्रिय कॉलम वाली उपयोगकर्ता तालिका बनाने के लिए नीचे दी गई क्वेरी का उपयोग करें।

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

उपयोगकर्ता तालिका में डेटा सम्मिलित करने के लिए नीचे दी गई क्वेरी का उपयोग किया जा सकता है।

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

उपर्युक्त क्वेरी 5 अलग-अलग उपयोगकर्ताओं का प्रतिनिधित्व करने के लिए आईडी, प्रथम नाम, अंतिम नाम और सक्रिय कॉलम वाली तालिका में 5 पंक्तियों को सम्मिलित करेगी।

अब हम उपयोगकर्ता तालिका के प्रथम नाम या अंतिम नाम कॉलम में खोजने के लिए WHERE क्लॉज के साथ LIKE कंडीशन का उपयोग करेंगे। यह MySQL में WHERE LIKE का उपयोग करके किया जा सकता है जैसा कि नीचे दिखाया गया है।

# LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` LIKE 'John';
SELECT * FROM `user` WHERE `first_name` LIKE 'john';

# Result
1 John Smith 1


# LIKE - Exact search - Multiple Conditions
SELECT * FROM `user` WHERE `first_name` LIKE 'Rick' AND `last_name` LIKE 'Jones';

# Result
2 Rick Jones 1


# NOT LIKE - Exact search - Single Condition
SELECT * FROM `user` WHERE `first_name` NOT LIKE 'John';

# Result
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0
 

उपर्युक्त प्रश्न WHERE LIKE और दिए गए पैटर्न का उपयोग करके सटीक खोज करते हैं। कॉलम मानों से मेल खाते समय LIKE शर्त मामले को अनदेखा कर देती है। यह अपरकेस या लोअरकेस के साथ समान परिणाम प्रदान करता है।

अब हम खोज करने के लिए वाइल्डकार्ड का उपयोग करेंगे जैसा कि नीचे दिखाया गया है।

# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%ine';

# Result
3 Catherine Ponting 0


# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE 'Cat%in%';

# Result
3 Catherine Ponting 0


# LIKE - % Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '%in%';

# Result
3 Catherine Ponting 0
5 Tajwinder Singh 0


# LIKE - _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_ohn';

# Result
1 John Smith 1


# LIKE - % & _ Wildcard search
SELECT * FROM `user` WHERE `first_name` LIKE '_oh%';

# Result
1 John Smith 1

नीचे दी गई क्वेरी LIKE शर्त के साथ ESCAPE कीवर्ड के उपयोग की व्याख्या करती है।

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 6, 'Jo%hn', 'Waugh', 1 ),
( 7, 'Rick', 'Jones', 1 );

# LIKE - ESCAPE - Exact search
SELECT * FROM `user` WHERE `first_name` LIKE '%#%hn' ESCAPE '#';

# Result
6 Jo%hn Waugh 1

इस प्रकार हम निर्दिष्ट पैटर्न का उपयोग करके खोज संचालन करने के लिए WHERE क्लॉज के साथ और वाइल्डकार्ड के बिना LIKE शर्त का उपयोग कर सकते हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं कैसे देख सकता हूं कि MySQL डेटाबेस/टेबल/कॉलम कौन सा वर्ण सेट करता है?

  2. आप MySQL डेटाटाइम कॉलम के लिए डिफ़ॉल्ट मान कैसे सेट करते हैं?

  3. त्रुटि कोड:1005. तालिका '...' नहीं बना सकता (त्रुटि:150)

  4. मेरे पास पूर्णांकों की एक सरणी है, मैं प्रत्येक को एक mysql क्वेरी (php में) में कैसे उपयोग करूं?

  5. लोकलहोस्ट बनाम 127.0.0.1 mysql_connect () में