2012-04-16 22 views
207

मैं एक MySQL डेटाबेसअद्यतन एक स्तंभ मान, एक स्ट्रिंग

[id, url] 

में निम्नलिखित कॉलम के साथ एक मेज है और यूआरएल की तरह हैं की जगह हिस्सा:

http://domain1.com/images/img1.jpg 

मैं सभी को अपडेट करना चाहते यूआरएल अन्य डोमेन

http://domain2.com/otherfolder/img1.jpg 

फ़ाइल का नाम रखते हुए।

मुझे क्या प्रश्न पूछना चाहिए?

+0

की संभावित डुप्लिकेट का मतलब है [MySQL स्ट्रिंग की जगह] (http://stackoverflow.com/questions/5956993/mysql-string-replace) –

उत्तर

443
UPDATE urls 
SET url = REPLACE(url, 'domain1.com/images/', 'domain2.com/otherfolder/') 
+0

बहुत उपयोगी, आउटसोर्स के साथ 2000 प्रश्नों पर काम किया, बहुत जल्दी। – Andy

+1

REPLACE भी SELECTs पर काम करता है, काफी उपयोगी :) – Arda

113
UPDATE yourtable 
SET url = REPLACE(url, 'http://domain1.com/images/', 'http://domain2.com/otherfolder/') 
WHERE url LIKE ('http://domain1.com/images/%'); 

प्रासंगिक डॉक्स: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace

+0

+1 प्रलेखन के संदर्भ के लिए +1 ... –

+13

हाय वहाँ- मुझे कहां चाहिए? –

+12

@GuyCohen क्योंकि अन्यथा क्वेरी तालिका में प्रत्येक पंक्ति को संशोधित करेगी। 'WHERE' क्लॉज क्वेरी को केवल कुछ यूआरएल के साथ पंक्तियों को संशोधित करने के लिए अनुकूलित करता है। तर्कसंगत रूप से, परिणाम वही होगा, लेकिन 'WHERE' के अतिरिक्त ऑपरेशन तेजी से करेगा। –

20

REPLACE function उपयोग करके देखें:

mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww'); 
     -> 'WwWwWw.mysql.com' 

ध्यान दें कि यह केस संवेदी है।

+0

+। – kubilay

+0

आप केस कैसे करते हैं - अनिवार्य? मैं ढेर plz hlp हूँ। thx –

+1

@UniversalGrasp यहां बहुत सारे संभावित उत्तर देखें: http://stackoverflow.com/questions/5656056/case-insensitive-replace-in-mysql –

8

आप केवल अभिलेख में हालत का अनुपालन को बदलने के लिए कहां खंड की जरूरत कहां खंड (सभी रिकॉर्ड के विपरीत)। आंशिक स्ट्रिंग इंगित करने के लिए आप % साइन का उपयोग करते हैं I.E.

LIKE ('... // domain1.com/images/%'); सभी रिकॉर्ड है कि "... // domain1.com/images/" के साथ शुरू और कुछ भी करने के बाद राशि का मतलब है (उस के लिए% ... है)

एक और उदाहरण:

की तरह ('% http://domain1.com/images/% ') जो सभी रिकॉर्ड है कि इसमें शामिल है "http://domain1.com/images/" स्ट्रिंग के किसी भी हिस्से में ...

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