आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable836(FirstName SET('John','Chris','Adam'));
Query OK, 0 rows affected (0.60 sec)
इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:
mysql> insert into DemoTable836 values('John,Chris');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable836 values('John,Chris,Adam');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable836 values('Chris,Adam');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable836 values('John,Adam');
Query OK, 1 row affected (0.37 sec)
सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> select * from DemoTable836;
यह निम्नलिखित आउटपुट देगा:
+-----------------+ | FirstName | +-----------------+ | John,Chris | | John,Chris,Adam | | Chris,Adam | | John,Adam | +-----------------+ 4 rows in set (0.00 sec)
कॉमा-सेपरेटेड स्ट्रिंग में से विशिष्ट शब्द हटाने की क्वेरी
mysql> update DemoTable836 set FirstName = FirstName &~ (1 << FIND_IN_SET('Chris', FirstName) - 1);
Query OK, 3 rows affected (0.21 sec)
Rows matched: 4 Changed: 3 Warnings: 0
आइए टेबल रिकॉर्ड एक बार फिर जांचें:
mysql> select * from DemoTable836;
यह निम्नलिखित आउटपुट देगा:
+-----------+ | FirstName | +-----------+ | John | | John,Adam | | Adam | | John,Adam | +-----------+ 4 rows in set (0.00 sec)
व्याख्या
यह तकनीक MySQL के SET डेटा प्रकार के बिटवाइज़ ऑपरेशन का उपयोग करती है। FIND_IN_SET शब्द की स्थिति ढूंढता है, फिर बिटवाइज़ ऑपरेशन द्वारा उस बिट को बंद कर दिया जाता है। यह केवल SET डेटा प्रकार के साथ काम करता है, सामान्य VARCHAR के साथ नहीं।