এই বিভাগে% কী করে?


13

আমি প্রশিক্ষণ দিচ্ছি এবং স্ক্রিপ্টগুলির একটিতে নিম্নলিখিত কমান্ড রয়েছে:

SELECT SUM(Col2) FROM clust_table WHERE Col1 % 3 = 1

আমি যেখানে জানতে চাইছি এই স্নিপেটটি কীসের জন্য যেখানে রয়েছে? Col1 % 3 = 1

আমি ইন্টারনেটে কিছু গবেষণা করেছি এবং এই আদেশের কোনও রেফারেন্স পাইনি।

উত্তর:


32

এটি একটি মডুলো অপারেটর হিসাবে ব্যবহৃত হচ্ছে; অন্য দ্বারা বিভক্ত একটি সংখ্যার অবশিষ্টটি ফিরিয়ে আনা।

আপনার উদাহরণে, WHERE ধারাটি ফলাফলগুলি কেবলমাত্র তাদের মধ্যে সীমাবদ্ধ করছে যেখানে কল 1 মান 3 দ্বারা বিভক্ত হয়ে বাকি 1 টি রেখে গেছে (উদাঃ 4,7,10, ইত্যাদি)



6

এসকিউএল-তে থাকা% দুটি পৃথক ফর্ম্যাটে ব্যবহার করা যেতে পারে। যদি এটির সাথে স্ট্রিং ব্যবহার করা হয় LIKEতবে এটি একটি ওয়াইল্ড কার্ড, উদাহরণস্বরূপ:

WHERE col_name like '%test%'

এর অর্থ হ'ল col_nameএটিতে "টেস্ট" শব্দটি রয়েছে এমন সমস্ত কিছু সন্ধান করুন ।

তবে এই নির্দিষ্ট ক্রিয়ায়% চিহ্নটি একটি মডুলো অপারেটর হিসাবে ব্যবহৃত হচ্ছে। Modulo (সাধারণত ক্যালকুলেটরে MODবোতাম হিসাবে প্রদর্শিত হয় ) বাকীটি ফেরত দেয়। লুপের জন্য ডেটা প্রদর্শন করার জন্য এবং আপনি কলামগুলি গণনা করতে চাইলে এটি বেশ কার্যকর সরঞ্জাম হতে পারে - একটি ওয়েব পৃষ্ঠা আঁকানোর সময় আমি সম্প্রতি মডুলো অপারেটরটি ব্যবহার করেছি। আমার পিএইচপি ছিল, কিন্তু এটি একটি উদাহরণ:

$count = 0 ;
$records = array () ;
for ( $a = 0 ; $a < 100 ; $a++ )
    $records[$a] = $a ;
foreach ( $records as $record )
{
    if ( $count % 3 == 0 )
        echo '<p>Three items</p>' ;
    if ( $count % 10 == 0 )
        echo '<p>Ten items</p>' ;
    echo '<p>'.$record.'</p>' ;
    $count++ ;
}

এটি মূলত 1 - 100 আউটপুট দেয় এবং প্রতি তিনটি আইটেম এটি "তিনটি আইটেম" আউটপুট দেয় এবং প্রতি দশটি আইটেম এটি "দশ আইটেম" আউটপুট দেয় কারণ অন্য কোনও সংখ্যার কোনও মান যেমন: ফেরত দেয়:

5 / 10 = 0.5 (5 % 10 = 5)
2 / 3 = 0.666... (2 % 3 = 2)
50 / 10 = 5.0 (50 % 10 = 0)
9 / 3 = 3.0 (9 % 3 = 0)

2
2% 3 = 2, 6 নয় .. মডুলো যখন আপনার দ্বারা বিভাজক করা সংখ্যাটি আপনি ভাগ করা সংখ্যার চেয়ে বেশি হয় তখন তার অবশিষ্টাংশটি প্রদান করে। দশমিক দ্বারা বিভাগের পিছনে দশমিকের মোডের আউটপুটটিতে কোনও প্রভাব নেই।
নিক

এবং select 5 / 10 ;দেব 0SQL এর যে, না0.5
ypercubeᵀᴹ

2

অন্য উত্তরগুলি সঠিক। এটি মডুলো অপারেটর, এটি বিভাগের বাকী অংশগুলি ফিরিয়ে দেয়।

  • 0% 3 = 0
  • 1% 3 = 1
  • 2% 3 = 2
  • 3% 3 = 0
  • 4% 3 = 1
  • 5% 3 = 2
  • ...

তবে আমি মনে করি এটি কেন একটি প্রাসঙ্গিক অপারেশন এবং এটি কখনও কখনও কেন কার্যকর হতে পারে তা যুক্ত করতে সহায়ক হতে পারে।

X % 2কারণ এটি ফেরৎ যদি সংখ্যা জোড় না বিজোড় হয় সবচেয়ে ব্যবহৃত হয়।

কল্পনা করুন যে আপনি এমনকি সংখ্যার সাথে সমস্ত কলাম নির্বাচন করতে চান, আপনি এটি করতে পারেন:

SELECT * FROM table WHERE column % 2 = 0

আপনি যদি বিজোড় সংখ্যা সহ সমস্ত কলাম নির্বাচন করতে চান তবে আপনি এটি করতে পারেন:

SELECT * FROM table WHERE column % 2 = 1

অন্যান্য ব্যবহারের ক্ষেত্রে উত্থাপিত হতে পারে, উদাহরণস্বরূপ, আপনি তাদের ইউনিট দ্বারা সমস্ত কলামগুলি ফিল্টার করতে চান, আপনি তাদের ইউনিটগুলিতে শূন্য রয়েছে এমন সমস্ত নম্বর পেতে এটি ব্যবহার করতে পারেন:

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