PDA

View Full Version : انتخاب 100 تا 100 رکورد از دیتا بیس



sara_aryanfar
دوشنبه 06 شهریور 1391, 17:18 عصر
با سلام من جدولی دارم که رکوردهای اون خیلی سریع افزایش پیدا می کنن در هر دقیقه حدود 1000 تا رکورد جدید اضافه میشه حالا من نیاز دارم که 100 تا از رکوردها رو که مقدار یک فیلدشون true هست رو انتخاب کنم بعد از انتخاب هم همه این صد رکورد اون فیلدشون false میشه حالا سوال من اینه که ما برای اینکه صد رکورد بعدی رو انتخاب کنیم چطوری باید عمل کنیم یعنی الان تا رکورد 100 انتخاب شده و می خواهیم از 100 تا 200 رو انتخاب کنیم و الی اخر (تعداد رکورد ها متغیر هست) ممنون از راهنمایی دوستان

orca13
دوشنبه 06 شهریور 1391, 17:52 عصر
سلام، من دقیقا نگرفتم منظورتونو!
اما اگه فقط true ها مهمه و 100 تای آخری، میتونید اول براساس فیلد true/false و سپس براساس تاریخ ایجاد رکورد مرتب و select رو اجرا کنید. (نمیدونم درست فهمیدم یا نه منظورتون رو)

موفق باشید.

sara_aryanfar
دوشنبه 06 شهریور 1391, 17:56 عصر
ببینید بحث true/false برا اینه که احیانا رکورد قبلا نیومده باشه یه جور محکم کاری مهم اینه که ما از اول شروع کنیم و رکورد ها رو صد تا صدتا بگیریم تعداد رکوردها هم متغیره چون هرلحظه داره اضافه میشه

aliblue
سه شنبه 07 شهریور 1391, 08:30 صبح
مگه با
select top 100
نمیشه؟
Select Top 100 field1,field2,field3
where field 3='True'

hamidkh
سه شنبه 07 شهریور 1391, 09:16 صبح
سلام
هنگام انتخاب رکورد ها یه order معکوس روی فیلد autoincreament تون بزنید و top 100 رو انتخاب کنید.

sara_aryanfar
چهارشنبه 08 شهریور 1391, 16:18 عصر
مگه با
select top 100
نمیشه؟
Select Top 100 field1,field2,field3
where field 3='True'
من هم تا امروز از روش شما استفاده می کردم اما بحث اینجاست که این دستور 100 رکورد اول که اون شرط رو داشته باشن بررسی می کنه و جلوتر نمیره

sara_aryanfar
چهارشنبه 08 شهریور 1391, 16:20 عصر
سلام
هنگام انتخاب رکورد ها یه order معکوس روی فیلد autoincreament تون بزنید و top 100 رو انتخاب کنید.
متوجه روش شما نشدم اگه ممکنه مثال بزنید

sara_aryanfar
چهارشنبه 08 شهریور 1391, 16:21 عصر
تصور می کنم بهترین راه نگهداری شماره آخرین ردیف انتخابی باشه شاید تا بشه در مرحله بعد ازش لستفاده کرد

kingmech
چهارشنبه 08 شهریور 1391, 16:34 عصر
شما یه سکلت جدا میزنی اون میزاری تو پرانتز بعد از پرانتز مجدد یه سلکت تاپ میگیری

hamidkh
چهارشنبه 08 شهریور 1391, 16:53 عصر
اگر اون رکوردهایی که انتخاب میکنید بعد از عملیاتی که انجام میدین فیلد مورد نظر رو false میکنید خب تمامی رکوردهای که اون فیلدشون true است رو انتخاب کنید و به صورت عکس مرتب کنید و 100 تای اول رو واکشی کنید. اگر میخواهید اخرین شماره رکورد رو نگه دارید راه خوبیه، منم اول به این راه فکر کردم ولی یه کم کارتون سخت میشه. البته اگر رکوردها رو به ترتیبی که درج شدن میخواهید واکشی کنید روشی که گفتم جواب میده.

FastCode
یک شنبه 12 شهریور 1391, 12:35 عصر
اگر primary key شما ترتیبی باشه خیلی راحت میتونید دستور ه update رو هم با top استفاده کنید
اگر مثلاً uuid باشه میتونید 100 رکورد اول رو با top بگیرید و بعد یکی یکی update کنید

سوالتون یکم غیر منطقی به نظر میاد,توی چه نوع سیستمی این همه اطلاعات دارید؟این کار برای test ه؟