উত্তর:
পরিবর্তন করুন table_nameএবং fieldপ্রশ্নে আপনার টেবিল নাম এবং ক্ষেত্র মেলে:
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;
WHERE instr(field, 'foo') > 0;(যাতে এটি 2 টি অনুসন্ধান করে না) ... আমি কি ভুল করছি?
WHEREআপনি যে সমস্ত দফায় দফায় দফায় দফায় দফায় দফায় কাজ না করে চলুন UPDATE...
UPDATE table_name
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');
UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);
উদাহরণস্বরূপ, যদি আমি জন দ্বারা মার্কের সমস্ত উপস্থিতি প্রতিস্থাপন করতে চাই তবে আমি নীচে ব্যবহার করব,
UPDATE student SET student_name = replace(student_name, 'John', 'Mark');
এবং আপনি যদি অন্য কোনও ক্ষেত্রের মানের উপর ভিত্তি করে অনুসন্ধান এবং প্রতিস্থাপন করতে চান তবে আপনি একটি সংযোগ করতে পারেন:
update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));
কেবল এখানে এটি রাখা যাতে অন্যরা এটি একবারে খুঁজে পায়।
আমার অভিজ্ঞতায়, দ্রুততম পদ্ধতিটি
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';
INSTR()উপায় দ্বিতীয় দ্রুততম এবং বাদ WHEREদফা পুরাপুরি, ধীরতম হয় এমনকি যদি কলাম সূচীবদ্ধ করা হয় না।
প্রতিস্থাপন স্ট্রিং ফাংশন যা করতে হবে।
update। অন্যথায় এই সমাধানটি ক্ষেত্রগুলি আপডেট না করে ব্যবহার করা যেতে পারে বলে এটি আরও ভাল।
আমি উপরোক্ত কমান্ড লাইনটি অনুসরণ হিসাবে ব্যবহার করেছি: টেবিল-NAME সেট FIELD = প্রতিস্থাপন করুন (FIELD, 'এবং', 'এবং'); উদ্দেশ্যটি ছিল এবং এর সাথে এবং এর সাথে "" এ "ছোট ছোট হওয়া উচিত)। সমস্যাটি হ'ল এটি ডাটাবেসে "এবং" সন্ধান করতে পারে না, তবে আমি যদি "% এবং%" এর মতো ব্যবহার করি তবে এটি এটি শব্দের অংশ বা এমনকী ইতিমধ্যে ছোট হাতের অক্ষরের সাথে যুক্ত অন্যান্য অনেকগুলি এবং এর সাথে এটির সন্ধান করতে পারে।
[field_name], "foo", "বার");