এসকিউএল এ প্রতিস্থাপন ব্যবহার


13

আমার একটি টেবিল রয়েছে এবং আমার কিছু নাম আপডেট করতে হবে তবে আমি এই সম্পর্কে ভাবছিলাম

নিম্নলিখিত প্রশ্নগুলি:

দুজনেই কি একই রকম করবে?

Query1

Update mytable
Set Name = Replace(Name,'Jeff','Joe')

Query2

Update mytable
Set Name = 'Joe'
where Name = 'Jeff'

উত্তর:


11

না, এটি একরকম নয়।

প্রথম ক্যোয়ারী পুরো স্ট্রিংয়ের মধ্যে স্ট্রিংয়ের সন্ধান করে (দেখুন প্রতিস্থাপন () " একটি নির্দিষ্ট স্ট্রিং মানটির সমস্ত উপস্থিতি অন্য স্ট্রিং মানের সাথে প্রতিস্থাপন করে " "), দ্বিতীয়টি সঠিক স্ট্রিংয়ের সন্ধান করে।

আপনার যদি রেকর্ডগুলি থাকে JeffJoeতবে প্রথম ক্যোয়ারী দেবে JoeJoe, দ্বিতীয় ক্যোয়ারী দেবে JeffJoe(কোনও পরিবর্তন ছাড়াই)।


25

না, তারা একই জিনিস করবে না।

  1. এসকিউএল ইঞ্জিন দ্বারা প্রয়োজনীয় পরিশ্রমের পরিমাণ সম্পূর্ণ আলাদা। প্রথম ক্যোয়ারিতে ইঞ্জিনটি অবশ্যই প্রতিটি সারিতে যাবে এবং নাম কলামে একটি স্ট্রিং প্রতিস্থাপন অপারেশন করবে। দ্বিতীয় ক্যোয়ারিতে এটি টেবিলটি অনুসন্ধান করছে যেখানে নামটি "জেফ" রয়েছে এবং জো হিসাবে নাম কলামটি আপডেট করছে।

  2. স্ট্রিং প্রতিস্থাপন ওয়াইল্ডকার্ড। সুতরাং প্রথম ক্যোয়ারিতে, "জেফরি" নামটি "জোয়ারি" হয়ে উঠবে।


3
পয়েন্ট 2 আরও গুরুত্বপূর্ণ মনে হয়। যদি এটি সঠিক জিনিস না করে তবে পারফরম্যান্স অপ্রাসঙ্গিক।
মার্টিন স্মিথ

আপনি সম্ভবত সঠিক, তবে আপডেটটি ব্যবসায়ের উদ্দেশ্য কী হবে তা আমরা আসলে জানি না। বিশ্লেষণের ক্রমটি আমার বিপরীত হওয়া উচিত ছিল, তবে আমি মনে করি উভয় ত্রুটি উল্লেখ করা সঠিক জিনিস ছিল। একটি ধারণা যা মনে আসে তা হ'ল ওপি আমাদের জন্য এটি সহজ করে দিয়েছিল, তবে বিশদটি বাদ দিয়েছে, যেমন "নাম" আসলে প্রথম নামের পরিবর্তে পুরো নাম ধারণ করে।
জোনাথন ফাইট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.