2012-03-21 10 views
5

मेरे पास अनुमतियों की एक श्रृंखला वाला एक टेबल है, और मुझे स्ट्रिंग में किसी दिए गए स्थिति पी में वाई के लिए प्रत्येक उपयोगकर्ता की अनुमति बदलने की आवश्यकता है, क्या कोई SQL कमांड मैं उपयोग या कर सकता हूं मुझे ऐसा करने के लिए एक प्रोग्राम/स्क्रिप्ट लिखनी है?एक MySQL स्ट्रिंग में एक विशिष्ट चार को बदलना

उत्तर

7

आप MySQL में concat और स्ट्रिंग के संयोजन का उपयोग कर सकते हैं:

mysql> select concat(substring('12345',1,3),'A',substring('12345',5)); 
+---------------------------------------------------------+ 
| concat(substring('12345',1,3),'A',substring('12345',5)) | 
+---------------------------------------------------------+ 
| 123A5             | 
+---------------------------------------------------------+ 

आप अपने स्तंभ के नाम के साथ की जगह ले सकता '12345'।

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

+0

डालने() फ़ंक्शन का उपयोग करने के लिए सुझाव दें। Guido एक दूसरे के प्रति एक char में परिवर्तन करने लगता है। तो डालें() सही होगा। Substring() का उपयोग करना सही होगा अगर बदलना चाहता था उदाहरण के लिए 5 char 10 अन्य तो जब स्रोत-लंबाई! = Dest-length। – Peter

0

बस डालने() फ़ंक्शन का उपयोग करें। आप इसे स्रोत स्ट्रिंग, स्ट्रिंग जो आप डालना चाहते हैं और चार लंबाई देते हैं। जैसा:

UPDATE TAB_SAP SET tsap_xgen = INSERT(tsap_xgen, 52, 1, '0') WHERE tsap_unidade = '1392398397' AND SUBSTR(tsap_xgen,52,1) != '0' 

इस मामले में, मैं एक फायर फाइटर (Sapador) जो एक कंपनी के हैं (Unidade) और जो एक स्ट्रिंग में एक विशिष्ट ध्वज (substr के रूप में (tsap_xgen, 52,1) का एक रिकॉर्ड खोज WHERE क्लॉज का! = '0' भाग), तो मैं char को '0' में बदलने के लिए इस स्ट्रिंग को अद्यतन करता हूं। डालने() का उपयोग करके आप एक से अधिक char बदल सकते हैं, उदाहरण के लिए INSERT (field_name, 52, 5, 'हैलो')

ध्यान दें कि फ़ंक्शन का नाम "अजीब" है क्योंकि यह "सम्मिलित नहीं" है लेकिन "मिटाएं" नए अक्षर लगाने के लिए स्थान पर चार।

संबंधित मुद्दे