• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
داده های تکراری
#1
یه سرچی می کردم در مورد اینکه چطوری وقتی اطلاعات وارد دیتابیس می کنیم چطوری بفهمیم که تکراری هستش یا نه.

خوب راه خیلی ساده و معمول اینه که یه کوئری بنویسیم براش.
اما وقتی اطلاعات تعدادشون زیاد می شه فکر نمی کنم این جوابگو باشه.

یکی از نتایج این سرچ شد این:

کد:
http://dev.mysql.com/doc/refman/5.5/en/insert.html
------
You can use REPLACE instead of INSERT to overwrite old rows. REPLACE is the counterpart to INSERT IGNORE in the treatment of new rows that contain unique key values that duplicate old rows: The new rows are used to replace the old rows rather than being discarded. See Section 13.2.8, “REPLACE Syntax”.

حالا فرقش با این چیه رو نمی دونم:
کد:
INSERT...ON DUPLICATE KEY UPDATE

راه دیگه ای می دونید برای انجام اینکه داده های تکراری وارد نشه و اگه همچین داده ای بود ریپلیس بشه؟
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#2
جیگر این دستور در صورتی insert میکنه که داده تکراری نباشه
اگر تکراری بود می تونه وارد نکنه و یا فیلدی رو update کنه
البته دستور ادامه داره
وبلاگ: Yousha.Blog.ir

صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
http://gulfnews.com/opinion/thinkers/ira...i-1.500997
  پاسخ
تشکر شده توسط : molana
#3
خوب تا اینجاش رو می دونم عزیزم

منظورم این بود که راه حل های دیگه وجود داره؟

یه راه حل مسخره هم پیدا کردم این بود که میاد یه جدول دیگه می سازه و داده های یونیک رو داخل اون اینسرت می کنه
فکر نمی کنم خیلی منطقی باشه وقتی تعداد رکورد ها خیلی بالا باشه
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#4
خب برای کجا می خوای؟
برنامه چی هست؟
وبلاگ: Yousha.Blog.ir

صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
http://gulfnews.com/opinion/thinkers/ira...i-1.500997
  پاسخ
تشکر شده توسط :
#5
حالا مثلن برای اینجا می خوام (اسمایلی اشاره کردن به مکانی نامعلوم :دی )

فرقی می کنه مگه؟
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#6
آره خیلی فرق می کنه. اصلاً 100%
می خوام ببینم چیه و برای چی می خوای که یک راه حل مناسب بهت پیشنهاد بدم و انجام بدی(اسماعیل لاس خشکه زدن :بهمن)
وبلاگ: Yousha.Blog.ir

صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
http://gulfnews.com/opinion/thinkers/ira...i-1.500997
  پاسخ
تشکر شده توسط :
#7
دونقطه بهمن رو خوب اومدی Smile)

۴۰ هزار تا رکورد دارم که یه سریشون تکراری هستش
می خوام تکراری ها رو حذف کنم
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#8
سر یه فیلد خاص تکراری هست؟
این یه نمونه
دیگه بر اساس نیازت می تونی تغییرش بدی
کد:
delete m1 from mytable join mytable as m2  on m1.myfield = m2.myfield
where m1.id > m2.id
  پاسخ
تشکر شده توسط :
#9
البته من این رو تست نکردم شاید جواب نده اگر نده راه حل اینه.
یه جدول شبیه جدول اصلیت درست کنی و بعد از جدول اصلیت اون رکوردهایی رو که می خوای به جدول کپیت بریزی .
کد:
CREATE TABLE mytabl2 LIKE mytable;
INSERT INTO mytable SELECT DISTINCT * FROM mytabl2;

جدول جدید جدولی هست که رکوردهای تکراری توش نیست. البته باید قسمت select رو بر اساس نیازت بنویسی
بعدش می تونی جدول اصلی رو پاک کنی و جدول کپی رو تغییر نام به جدول اصلی بدی
  پاسخ
تشکر شده توسط :
#10
جدول temp منظورته؟
وبلاگ: Yousha.Blog.ir

صدام: "اگر با ارتش شاه ایران طرف بودیم، یک ماهه جنگ را می بردیم"
http://gulfnews.com/opinion/thinkers/ira...i-1.500997
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان