উত্তর:
পরিবর্তন করুন 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", "বার");