Flutter Dev نشر 1 مارس 2022 أرسل تقرير نشر 1 مارس 2022 اقوم بجلب بيانات جدول كالتالي: $sql = "SELECT * FROM topic LEFT JOIN Table1 ON topic.id = Table1.IdTable1 WHERE state = 1 AND State = 0 AND name Like ? OR Table1.IdTable1 Like ? "; انا اجلب بيانات الجدول الأول الذي اسمه Topic واقوم بجلب بيانات الجدول الذي اسمه Table1 مع وجود شرط ان يكون state يساوي 0 حسنا الان انا أحاول جلب البيانات بشرط من الاثنين اما من خلال name او من خلال IdTable1 المشكلة كالتالي : لو قمت بجلب البيانات من خلال حقل name هنا سوف يعمل شرط state أيضا بحيث سوف يجلب البيانات التي تحتوي على قيمة 0 state ولكن لو قمت بجلب البيانات من خلال Table1.IdTable1 رح تحدث مشكلة وهيا ان state لن يعمل وسوف يجلب جميع البيانات سوى كان state يحمل قيمة 1 او 2 او 3 كيف يمكن حل هذا المشكلة بحيث ان state يجب ان يعمل في كل الحالتين هل توجد طريقة لفعل ذلك؟ 1 اقتباس
1 Wael Aljamal نشر 1 مارس 2022 أرسل تقرير نشر 1 مارس 2022 بتاريخ الآن قال مروان مروان3: هنا تكملن المشكلة انا احتاج ان ياخذ state 0 مثل استعلام name والذي هو قبل الجمله OR تمام، نعمل and بين أول شرط state = 0 مع الجزء الآخر للجملة، لكن لن تعمل state = 1 لأنها للتو قيمتها 0 WHERE state = 0 AND ( name Like ? OR Table1.IdTable1 Like ? )"; 1 اقتباس
0 Wael Aljamal نشر 1 مارس 2022 أرسل تقرير نشر 1 مارس 2022 فهمت أنك تريد جلب البيانات في حال state = 1 ثم شرط آخر هو state 0 مع اسم معين أو id ميعن.. جرب التالي: WHERE state = 1 OR ( State = 0 AND name Like ? ) OR (Table1.IdTable1 Like ? )"; أو WHERE state = 0 OR ( State = 1 AND name Like ? ) OR (Table1.IdTable1 Like ? )"; ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ وضع أقواس لكل مجموعة شروط مرتبطة بينهم OR هو حل مشكلتك. AND لها أولوية (يتم تقييم طرفيها ثم استبدالها بقيمة منطقية) ثم ننتقل ل AND الثانية .. ثم يتم تجميع الشرط كاملاً بعبارات OR في حال الاستعلام خطأ، عليك وضع توضيح للشروط التي تستعملها لأنه غير مفهوم. 1 اقتباس
0 Flutter Dev نشر 1 مارس 2022 الكاتب أرسل تقرير نشر 1 مارس 2022 بتاريخ 2 دقائق مضت قال Wael Aljamal: فهمت أنك تريد جلب البيانات في حال state = 1 ثم شرط آخر هو state 0 مع اسم معين أو id ميعن.. جرب التالي: WHERE state = 1 OR ( State = 0 AND name Like ? ) OR (Table1.IdTable1 Like ? )"; أو WHERE state = 0 OR ( State = 1 AND name Like ? ) OR (Table1.IdTable1 Like ? )"; ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ وضع أقواس لكل مجموعة شروط مرتبطة بينهم OR هو حل مشكلتك. AND لها أولوية (يتم تقييم طرفيها ثم استبدالها بقيمة منطقية) ثم ننتقل ل AND الثانية .. ثم يتم تجميع الشرط كاملاً بعبارات OR في حال الاستعلام خطأ، عليك وضع توضيح للشروط التي تستعملها لأنه غير مفهوم. اهلا اخي الكريم لا انا احاول اجلب البيانات من خلال استعلام نوعين يعني ممكن للمستخدم يعمل استعلام من خلال ID او من خلال name ولكن في كل الحالتين احتاج ان يكون البيانات المرجعه ماخذه حقل state في حالة 0 الان هو استعلام name ياخذ حالة 0 ولكن حقل ID لا ياخذ بمعنى ان الاستعلام الذي صار بعد جمله OR لا يتاثر بما قبله وهو state =0 هنا تكملن المشكلة انا احتاج ان ياخذ state 0 مثل استعلام name والذي هو قبل الجمله OR 1 اقتباس
السؤال
Flutter Dev
اقوم بجلب بيانات جدول كالتالي:
انا اجلب بيانات الجدول الأول الذي اسمه Topic واقوم بجلب بيانات الجدول الذي اسمه Table1 مع وجود شرط ان يكون state يساوي 0
حسنا الان انا أحاول جلب البيانات بشرط من الاثنين اما من خلال name او من خلال IdTable1
المشكلة كالتالي : لو قمت بجلب البيانات من خلال حقل name هنا سوف يعمل شرط state أيضا بحيث سوف يجلب البيانات التي تحتوي على قيمة 0 state
ولكن لو قمت بجلب البيانات من خلال Table1.IdTable1 رح تحدث مشكلة وهيا ان state لن يعمل وسوف يجلب جميع البيانات سوى كان state يحمل قيمة 1 او 2 او 3
كيف يمكن حل هذا المشكلة بحيث ان state يجب ان يعمل في كل الحالتين هل توجد طريقة لفعل ذلك؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.