View Full Version : سوال: رکورد بعدی در دیتابیس
alimooghashang
دوشنبه 06 خرداد 1387, 19:34 عصر
با سلام
من چطور میتونم با یک query تو دیتا بیس رکورد بعدی و قبلی یک رکورد را بگیرم
قابل توجه که فیلد ID من که Primery Key هست عدد هاش ترتیبی نیست
مثلا
1
3
6
7
10
24
اگر ترتیبی بود خودم راحت با یه id+1 میگرفتم
اما ترتیبی نیست
میخوام بگم رکورد بعدی، مثلا رکورد بعدی 7 که میشه ID=10
maysamscript
دوشنبه 06 خرداد 1387, 21:26 عصر
select * from table where id > 7
alimooghashang
دوشنبه 06 خرداد 1387, 21:30 عصر
select * from table where id > 7
مرسی که جواب دادی
من یه رکورد میخوام نه رکورد های بعدی رو
فقط یه رکورد بعدی و یه رکورد قبلی
و فیلد ID من به ترتیب نیست
مرسی که جواب نمیدی
maysamscript
سه شنبه 07 خرداد 1387, 06:56 صبح
خوب اینو به بالایی اضافه کن
limit 0,1
alimooghashang
سه شنبه 07 خرداد 1387, 12:00 عصر
با سلام
من چطور میتونم با یک query تو دیتا بیس رکورد بعدی و قبلی یک رکورد را بگیرم
قابل توجه که فیلد ID من که Primery Key هست عدد هاش ترتیبی نیست
مثلا
1
3
6
7
10
24
اگر ترتیبی بود خودم راحت با یه id+1 میگرفتم
اما ترتیبی نیست
میخوام بگم رکورد بعدی، مثلا رکورد بعدی 7 که میشه ID=10
ببین داداش
من رکورد هام طبق بالاست
الان میخوام یه کدی بنویسم که الان که رکورد مثلا 3 را دارم نشون میدم
رکورد قبلی اش 1 و رکورد بعدی اش 6 را هم نشون بدم
اما این رکورد همیشه فقط 3 نیست
میخوام برای همه رکورد ها قابل اجرا باشه
چون ترتیب شون مثل هم نیست و اختلافشون زیاده
فقط میخوام بگم تو دیتا بیس رکورد بعدی و رکورد قبلی
مثلا تو دلفی داشتیم adoquery1.next
میرفت رکورد بعدی را برمیگردوند
و یه سوال دیگه
چطور رکورد تصادفی بگیرم؟
با تشکر
tabib_m
سه شنبه 07 خرداد 1387, 19:13 عصر
جواب دوستان درست بود. فقط کمی اشتباه داشت (یعنی سورت رو جا انداخته بود) :)
select * from `tableName` where `id`>'3' order by `id` limit 1
نتیجه ی این کوئری میشه دقیقا رکورد بعدی.
select * from `tableName` where `id`<'3' order by `id` desc limit 1
و نتیجه ی این کوئری هم دقیقا رکورد قبلی هست...
و یه سوال دیگه
چطور رکورد تصادفی بگیرم؟
اگر جستجو میکردی بود. حالا هم که جستجو نکردی، بهتر بود جداگانه مطرح میکردی. ولی در هر صورت:
select * from `tableName` order by rand() limit 1
نتیجه ش میشه یک دونه رکورد به صورت تصادفی. و اگر limit رو برداری، میشه همه ی رکوردها به صورت نامرتب...
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.