কেউ কেন একটি কোয়েরিতে `যেখানে 1 = 1` রাখবে?


18

আমি আজ আমাদের ডাটাবেজে একটি দৃশ্য জুড়ে এসেছি যেখানে ক্লজটি ছিল যেখানে প্রথম বিবৃতি where 1 = 1। প্রতিটি রেকর্ডের জন্য এই প্রত্যাবর্তনটি সত্য হওয়া উচিত নয়? এটি যদি কোনও রেকর্ড ফিল্টার না করে তবে কেন কেউ এটি লিখবেন?


এখানে জবাব দেওয়া হয়েছে: dba.stackexchange.com/questions/667/…
গাইস

3
কারণ তারা sombodys ওয়েবসাইট হ্যাক করতে চায় ;-)
টিম শেমলেটার

উত্তর:


40

কিছু গতিশীল ক্যোয়ারী বিল্ডারদের এই শর্তটি অন্তর্ভুক্ত করে যাতে কোনও ANDচেক পছন্দ না করে কোনও "আসল" শর্ত যুক্ত করা যায় if (first condition) 'WHERE' else 'AND'


এটি আশ্চর্যের মতো মনে হয় যে কোনও ক্যোয়ারী নির্মাতা একটি লাইনে শর্তটি প্রথম কোথায় তা নির্ধারণ করতে পারে না, তবে আমি আরও মনে করি, আপনি ঠিক বলেছেন।
ern0

3
এটি প্রায়শই ঘটে যখন "ক্যোয়ারী বিল্ডার" হ'ল এসকিউএল বিবৃতিটিতে হাত দিয়ে কোড লেখার জন্য কেউ লেখা থাকে। কখনও কখনও আরও একটি আনুষ্ঠানিক ক্যোয়ারী বিল্ডিং লাইব্রেরি প্রবর্তন এটি সরিয়ে দেয়।
আরাকনিদ

1
আমাকে "পুরানো" কোডটির সাথে এরকম আচরণ করতে হয়েছিল এবং এটি খুব সত্য। আপনি যখন পুরো এসকিউএল বিবৃতিটিকে একটি একক স্ট্রিংয়ে একত্রিত করছেন, তখন / এর পরে বা মামলার স্টেটমেন্টগুলি হতে পারে যা ট্রিগার করতে পারে বা না পারে। যেহেতু আপনি কখনই জানেন না যে এই কোডগুলির কোনও পথ নেওয়া হয়েছে কিনা, তবে আপনার একটি বৃহত্তর ধারাটিতে একটি অ্যান্ড এমবেড রয়েছে (ধারাটির সাথে ধারাবাহিকভাবে ধারাটির একটি ধারা রয়েছে), আপনাকে (ক) আপত্তিকর অপসারণ অপসারণ করতে হবে এবং বা ( খ) কেবল এটি একটি যৌক্তিক ট্রুইজম পাস। "1 = 1" যুক্ত করা স্ট্রিংটি সঠিকভাবে redacting করার চেয়ে সহজ।
এভেরি পায়েেন

5

যদি আপনার প্রোগ্রামে অনেকগুলি এসকিউএল বিবৃতি বিল্ডিং পয়েন্ট থাকে যা একই ধরণের প্রশ্ন উত্পন্ন করে , আপনি এই কৌশল দ্বারা পরীক্ষিতটিকে চিহ্নিত করতে পারেন। বাক্যটি যদি গণনা সম্পর্কে হয় তবে আপনি নীচের কোডটি ব্যবহার করতে পারেন যাতে আপনি 42এসকিউএল লগ থেকে গ্রেপ আউট করতে পারেন ।

select count(42) from table

4

এটি এমন পরিস্থিতি সরবরাহ করে যা সর্বদা সত্য, সুতরাং এটি ফলাফলগুলিকে প্রভাবিত করে না তবে আপনি জানেন যে ইতিমধ্যে WHERE ধারাটিতে একটি আইটেম রয়েছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.