اشکال در پاک کردن یک row از mysql

adib_f

Member
سلام.
فکر کنید که من یک جدول به صورت زیر دارم:
id+
1
2
3
4
5
6
7

من وقتی میخوام یک row رو از مای اس کیو ال پاک کنم به عنوان مثال اگه row ما 5 باشه و بخوایم پاک بشه پاک میشه ولی با یک مشکل بزرگ.
وقتی پاک میشه جدول به این صورت در میاد:
id+
1
2
3
4
6
7
من میخوام جدول به این صورت در بیاد:
1
2
3
4
5
6
راه حلی هست؟اشکال از کجاست؟
ممنون.

 

peyman1987

Member
شما چرا میخواین همچین کاری بکنین؟ چه نیازی هست که Id های شما ترتیبشون حتما درست باشه؟
 

adib_f

Member
ترتیبشون خیلی برا مهمه.
مثلا اگه اینجوری باشه:
1
2
3
4
7
و بخوایم لیمیتشون کنیم مثلا 3 تا 3تا اینجوری میشه:
صفحه ی اول:
1
2
3
صفحه ی دوم:
4
صفحه ی سوم:
7
من میخوام همش توی 2 صفحه باشه با این صورت
صفحه ی اول:
1
2
3
صفحه ی دوم:
4
5
ممنون
 

tabib_m

Member
مشکل شما اينجاس که اصلا نميدوني کار id چيه :)

limit هم کاری به شماره ی آيدی نداره, بلکه به تعداد کار داره.
يعنی نتيجه ی ليميت کردن 3 تا 3 تاي يه همچين جدولی:
کد:
3
15
18
64
132
186
267
293
305
311
405
اين ميشه:
کد:
3
15
18
----------------
64
132
186
----------------
267
293
305
----------------
311
405

اگر هم احيانا يه موقع خواستی توي نمايش جدولت, کنارشون يه شماره بذاری, نبايد برای اين کار از id استفاده کنی, بلکه بايد يک شمارشگر بندازی توی حلقه ت و نمايشش بدی.

در کل, جابه جا کردن شماره های آیدی از جای اصلیشون شدیدا کار اشتباهی هست!

موفق باشید.
 
آخرین ویرایش:

adib_f

Member
دوستان ببخشید من از لیمیت استفاده نکرده بودم.:eek:
مشکلم حل شد.:D
 

adib_f

Member
بازم سلام.
لیمیت رو هم امتحان کردم درست ولی ولی یه چیزی رو نفهمیدم.
فکر کنید که ترتیب آی دی های ما اینطوریه:
1
2
3
4
7
15
20
اگه بخوایم 3 تای آخر رو نشون بدیم باید چه کار کنیم؟
ممنون.
 

peyman1987

Member
کافیه آیدیها رو بصورت نزولی سورت کنی و بعد سه تای اول رو برداری

کد:
SELECT * FROM table ORDER BY id DESC LIMIT 3
 

جدیدترین ارسال ها

بالا