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

MySQL में FIND_IN_SET से कॉमा-अलग मानों वाले कॉलम में खोज करना

MySQL में एक कॉलम में कॉमा-अलग (या अन्य डिलीमीटर) मानों की सूची में किसी मान की खोज के लिए FIND_IN_SET() फ़ंक्शन का उपयोग किया जाता है। IN() ऑपरेटर यहाँ काम नहीं करता क्योंकि यह कॉलम मानों की तुलना करता है, न कि सूची के अंदर।

उदाहरण के लिए टेबल बनाना

mysql> CREATE TABLE DemoTable (ListOfValues TEXT);

पाइप-अलग मान डालना

mysql> INSERT INTO DemoTable VALUES('10|20|30|40|50|60|100');

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

mysql> SELECT * FROM DemoTable;

आउटपुट

+-----------------------+
| ListOfValues          |
+-----------------------+
| 10|20|30|40|50|60|100 |
+-----------------------+

FIND_IN_SET से मान 100 खोजना (पाइप को कॉमा में बदलकर)

mysql> SELECT FIND_IN_SET(100, REPLACE(ListOfValues, '|', ',')) FROM DemoTable;

आउटपुट

+-------------------------------------------------+
| FIND_IN_SET(100, REPLACE(ListOfValues,'|',',')) |
+-------------------------------------------------+
| 7                                               |
+-------------------------------------------------+

व्याख्या: FIND_IN_SET() कॉमा-अलग स्ट्रिंग में काम करता है। REPLACE() पाइप को कॉमा में बदलता है। परिणाम 1-आधारित स्थिति है (नहीं मिलने पर 0)। चेतावनी: यह स्ट्रिंग तुलना है; संख्यात्मक तुलना के लिए कास्ट करें। बड़े डेटा के लिए नॉर्मलाइज़्ड टेबल बेहतर है।

  1. - क्या हम MySQL टेबल के लिए 'user' शब्द का उपयोग कर सकते हैं?

    उत्तर नहीं, आप MySQL टेबल के लिए सीधे user शब्द का उपयोग नहीं कर सकते क्योंकि यह MySQL में एक आरक्षित शब्द (reserved word) है। MySQL की सिस्टम टेबल mysql.user मौजूद है। समाधान बहुवचन उपयोग करें: users (सबसे आम और अनुशंसित) बैकटिक्स उपयोग करें: `user` (काम करता है लेकिन भ्रमित कर सकता है) वर्णनात्म

  1. - MySQL में कॉमा से SELECT स्टेटमेंट जोड़ें (क्रॉस जॉइन)

    MySQL में दो टेबल के बीच कॉमा (`,`) का उपयोग करना CROSS JOIN के समान है: यह कार्टेशियन गुणनफल (प्रत्येक पंक्ति × प्रत्येक पंक्ति) उत्पन्न करता है। सिंटैक्स -- कॉमा सिंटैक्स (पुराना) SELECT * FROM table1, table2; -- स्पष्ट CROSS JOIN (अनुशंसित) SELECT * FROM table1 CROSS JOIN table2; टेबल बनाएं my

  1. - MySQL में कॉमा-सेपरेटेड मानों के बीच विशिष्ट स्ट्रिंग कैसे खोजें?

    MySQL में जब किसी कॉलम में कॉमा-सेपरेटेड मान (CSV) स्टोर होते हैं, तो उनमें किसी विशिष्ट मान को खोजने के लिए REGEXP (रेगुलर एक्सप्रेशन) का उपयोग करना सबसे प्रभावी तरीका है। यह सटीक मिलान सुनिश्चित करता है और आंशिक मिलान से बचाता है। उदाहरण: REGEXP के साथ CSV खोज डेमो टेबल बनाएं: mysql> CREATE