কোয়েরি অবজেক্টটি ব্যবহার করে WHOE ধারাটিতে কীভাবে ANDs এবং ORs একত্রিত করবেন?


21

নীচের পছন্দসই এসকিউএল প্রদত্ত, যেখানে কনড 1 এবং কনড 2 পূরণ করতে হবে বা নির্বাচনের জন্য কনড 3 অবশ্যই পূরণ getQuery()করতে হবে, এটি অর্জনের জন্য সঠিক উপায়টি কী ?

পছন্দসই এসকিউএল: প্রথম বন্ধনীতে শর্ত 1 এবং শর্ত 2)

SELECT * FROM #__myTable 
WHERE (condition1=true AND condition2=true) OR condition3=true

চেইন সহ: - বা যেখানে - (এখানে)

$query = $db->getQuery(true);
$query->select('* FROM #__myTable')
->where('condition1 = true AND condition2 = true','OR')
->where('condition3 = true');

ফলাফল এসকিউএল: (এসকিউএল বন্ধনী অনুপস্থিত)

SELECT * FROM scm_myTable
WHERE condition1 = true AND condition2 = true OR condition3 = true

অ্যারে -> যেখানে () - এ OR নির্দিষ্ট করে

$query = $db->getQuery(true);
$conditions12 = array(
    'condition1 = true',
    'condition2 = true'
);
$conditions3 = array(
    'condition3 = true'
);
$query->select('* FROM #__myTable')
->where($conditions12, 'OR')
->where($conditions3);

ফলাফল এসকিউএল: (এসকিউএল বন্ধনী অনুপস্থিত)

SELECT * FROM scm_myTable
WHERE condition1 = true OR condition2 = true OR condition3 = true

উত্তর:


20

চেইনিংয়ের সাথে প্রয়োজনীয় প্রথম বন্ধনীগুলি অন্তর্ভুক্ত করে কাঙ্ক্ষিত এসকিউএল তৈরি করেছে:

চেইন সহ: ওআর নির্দিষ্ট করে এবং বন্ধনীতে কন্ড 1/2 মোড়ানো

$query = $db->getQuery(true);
$query->select('* FROM #__myTable')
->where('(condition1 = true AND condition2 = true)','OR')
->where('condition3 = true');

এসকিউএল ফলাফল: (প্রথম বন্ধনী অন্তর্ভুক্ত)

SELECT * FROM scm_myTable
WHERE (condition1 = true AND condition2 = true) OR condition3 = true

অথবা orWhere / এবং কোথায় ব্যবহার করুন

$query = $db->getQyery(true);
$query->select('*')
->from($db->quoteName('#__myTable'))
->where($db-quoteName('condition3') . ' = TRUE')
->orWhere(array($db->quoteName('condition1') . ' = TRUE', $db->quoteName('condition2') . ' = TRUE'));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.