यदि आप बस इस तरह से खोज और प्रतिस्थापित करते हैं, तो आप क्रमबद्ध डेटा को अनुपयोगी बना देंगे। यहां आपको क्या करना है:
$old = 'http://www.google.com';
$new = 'http://www.someplace.com';
$search = 's:' . strlen($old) .':"' . $old . '"';
$replace = 's:' . strlen($new) .':"' . $new . '"';
$query = "UPDATE config SET array=REPLACE(array, '{$search}', '{$replace}');";
$old
बदलें और $new
अपने वर्तमान और लक्ष्य url के साथ, स्क्रिप्ट चलाएँ और उत्पन्न $query
. निष्पादित करें .
यहाँ एक शुद्ध SQL समाधान है:
SET @search := 'http://www.original.com';
SET @replace := 'http://www.target.com';
UPDATE config SET array=REPLACE(array, CONCAT('s:', LENGTH(@search), ':"', @search, '"'), CONCAT('s:', LENGTH(@replace), ':"', @replace, '"'));
ध्यान दें कि यह आपके क्रमबद्ध सरणी में खोज स्ट्रिंग की हर घटना को बदल देगा। यदि आप किसी विशिष्ट कुंजी को बदलना चाह रहे हैं, तो आपको और अधिक, विशिष्ट होना चाहिए।