بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

اضافه کردن دیتا به دیتابیس در ابتدای دیگر دیتا ها ( حل شده )

مدیریت گفتگو
sadra 11 سال پیش
آخرین تغییر: 11 سال پیش

نمی دونم شاید واسه خیلی ها پیش اومده باشه، من یه دیتابیس ساختم با SQLite تموم شد. اما حالا یه سری چیزهایی به ذهنم رسیده که میخوام دوباره به دیتا اضافه کنم. اما میخوام این دیتای جدیدم بیاد بالای همهی دیتا ها قرار بگیره.یعنی از ID=1 شروع کنه و بقیه دیتا ها دوباره از اون به پایین IDهاشون مرتب و تنظیم بشه. دوستای متخصص چطوری باید اینکارو کرد؟

اصن اول نه من شاید بخوام دیتا به وسط اضافه بشه و از اونجا به بعد بقیه زیرش قرار بگیرند. چطوری اینکارو باید کرد؟ اگه دوستان یه راهنمایی کامل و بیسیک بکنند ممنون میشیم <3

البته خودمم الان دارم تو نت واسه این موضوع سرچ می کنم ببینم چی میشه. اینو نوشتم که اگه کسی هم مشکل منو داشت مشکلش حل بشه.

 

نظرات

javac 11 سال پیش
معمولا اطلاعات دیتابیس رو بر اساس ستون هادیگه مثلا تاریخ درج یا حروف الفبا مرتب میکنن
BehrouZ.J 11 سال پیش
در طی این چند سالی که برنامه نویسی وب انجام میدم و مستقیما با بانک MySQL کار میکنم تا بحال نشده به چنین مشکلی بربخورم. فکر کنم شما برای رفع مشکلتون راه حل اشتباهی رو انتخاب کردین. لطفا دقیقا بگین چیکار میخواین انجام بدیدن تا راه حل بهتری بهتون پیشنهاد بشه. (به هیچ وجع این کار پیشنهاد نمیشه) . احساس میکنم بیشتر اینکارتون بخاطر وسواس در مرتب شدن ID ها و محتوای هر رکورد هستش.
sadra 11 سال پیش
ببینید برای کتاب خوب من همه چیز رو بر اساس ID مرتب کردم که فصل به فصل و صفحه به صفحه جلو میره. حالا نصمیم گرفتم یه چیزایی به ابتدای جدولم اضافه کنم. واسه همین میخوان این دیتا ها برن به اول دیتابیس و بقیه زیرش مرتب بشن.

پاسخ‌ها 3

sadeghbarout 11 سال پیش

راه دستیش اینجوریه که id هاتو مثلا 5 تا اضافه کنی و بعد اون 5 ستون رو اضافه کنی با اون idهای 1 تا5

این دستور sqlش :

 UPDATE mytable SET id=id+5 WHERE id>0

حالا اگه وسطش خواستی این کارو کنی که اون شرط WHERE  رو تغییر بده

نظرات

sadra 11 سال پیش
اینکارو کردم اما جواب نداد. یعنی این کدش غلط بود! :(
AhmadVB 11 سال پیش
البته این طبیعی است چون مثلا id شماره 1 می خواهد بشود 5 ، این در حالی است که ID شماره 5 وجود دارد.و چون ID های یونیک هستند نمی شود.
sadeghbarout 11 سال پیش
حرفتون درسته نکته خوبی بود. ممنون
ATRAS 11 سال پیش

دوست عزیز این کد درسته شما برای تغییر باید از آخر شروع کنین چون id ها به عنوان کلیداصلی تعریف شدن و نمیتونن مقدار id بقیرو بگیرن.به عنوان مثال ما دو id داریم برای افزایش نمیشه گفت(  id2=3و id1=2) چون 2 از قبل برای id2 تعریف شده.شما باید بگین(id1=2وid2=3) یعنی اول id2 رو تغیر میدین بعد id1 رو.

نظرات

sadra 11 سال پیش
خوب چطوری باید اینکارو بکنم؟ الان کدش چی میشه؟
AhmadVB 11 سال پیش
می توانید آخر دستور بگذارید order by id desc
sadra 11 سال پیش

خوب راه حل این شد که همرو یه بار شیف دادم به یه عددی بالا مثلا 500 بعدش خواستم به اون تعدادی که رکورد اضافه منه ازش کم کردم. یعنی 495 مثلا. درواقع اینجوری کردم:

500+5 برابر با 505 ا به عدد ID ها اضافه شد:

  UPDATE mytable SET id=id+505 WHERE id>0

و بعدش 500 تا ازش کم کردم که درواقع همون 5 تا شماره عدد ID شیفت پیدا کنهو و بعدشم دیگه رکورد های جدید رو اضافه کردم به ابتدای جدولم :P

  UPDATE mytable SET id=id-500 WHERE id>0

مرسی از همه بچه ها :* واسه همتون لایک گذاشتم ;)

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .