ورود

View Full Version : سوال: حذف رکور دهای مورد نظر



engmmrj
یک شنبه 12 خرداد 1392, 02:31 صبح
مثلا من میخوام رکورد های (1و3و7و6و8) رو پاک کنم باید تو query همش بعد where - and بگذارم اینجوری ؟
DELETE * FROM T WHER ID=1 AND ID=6 AND...
باید اینجوری بنویسم یا راه حل بهتر وجود داشته .

امیـرحسین
یک شنبه 12 خرداد 1392, 11:13 صبح
DELETE FROM `tbl` WHERE id IN(1,3,6,7,8);
در ضمن این شرط OR باید باشه نه AND!
کوئری که نوشتم معادل کوئری زیره:
DELETE FROM `tbl` WHERE id=1 OR id=3 OR id=6 OR id=7 OR id=8;

engmmrj
یک شنبه 12 خرداد 1392, 23:12 عصر
DELETE FROM `tbl` WHERE id IN(1,3,6,7,8);
در ضمن این شرط OR باید باشه نه AND!
کوئری که نوشتم معادل کوئری زیره:
DELETE FROM `tbl` WHERE id=1 OR id=3 OR id=6 OR id=7 OR id=8;
اگه OR بشه فقط یک رکورد و پاک میکنه . باید AND باشه !
IN هم از بین اون اعداد اگه وجود داشت ، اصلا ربطی به سوال من نداشت .
من میخواستم ببینم دستوری است که از AND های پشت سرهم استفاده نکنم ؟

امیـرحسین
دوشنبه 13 خرداد 1392, 11:01 صبح
MySQL سطر به سطر چک میکنه و تو یه سطر امکان نداره هم id=1 باشه هم id=3 یعنی یک فیلد فقط یک مقدار داره پس AND و AND همیشه FALSE خواهد بود. برای مثال شما OR مناسبه و اون IN هم مترادف چند تا OR روی یک فیلد هست.
در هر صورت برای چند تا AND مترادفی وجود نداره (من خبر ندارم) چون AND روی یک فیلد بی معنیه و روی چند تا فیلد هم میشه Conditionهای مختلف که باید تک تک تعریف بشن.