PDA

View Full Version : سوال: انتقال یکی از ستون های جدول به یک جدول دیگه



tem988
جمعه 05 اسفند 1390, 02:33 صبح
سلام
من دو تا جدول دارم که هر کدوم 100 هزار رکورد داره.
میخوام یکی از ستون های جدول اولی رو به جدول دومی انتقال بدم.
و این دو ستون فقط فیلد id و فیلد post مقدارهاشون شبیه هم هستن بقیه فیلدها مقدار ها با هم فرق دارن

که توی جدول اولی میخوام مقدارهای فیلد more رو انتقال بدم به جدول دومی

البته خودم با حلقه این کارو کردم ولی بعد از گذشت 1 ساعت فقط 100 تا رکورد آپدیت شد.
حتی رو لوکال هم تست کردم خیلی دیر آپدیت میشه.

آیا راهی هست سریع بشه انتقال داد یا سریع آپدیت کنه ؟
ممنون میشم کمک کنید.

امیـرحسین
جمعه 05 اسفند 1390, 16:49 عصر
ستون رو اول ایجاد کنید بعد با یک کوئری همه رو منتقل کنید دیگه:
UPDATE table_x
LEFT JOIN table_y ON table_y.id=table_x.post
SET table_x.more=table_y.more
WHERE table_x.more != ''
و در آخر ستون رو از اولی حذف کنید.
اول اینکه سرور معمولا قوی‌تر سریعتر از لوکاله و اینکه ۱۰۰ تا یکم طول میکشه ولی فکر نکنم ۱ ساعت. شاید ۱۰ دقیقه....

persian-boy
جمعه 05 اسفند 1390, 17:30 عصر
با پوزش از استارتر عزیز ،

امکانش هست این بخش رو توضیح بدید ؟


LEFT JOIN

امیـرحسین
جمعه 05 اسفند 1390, 17:42 عصر
برای وصل کردن دو تا جدول به هم. اینجا رو ببینید: http://www.tizag.com/mysqlTutorial/mysqljoins.php
LEFT JOIN یعنی سطرهای جدول اصلی همه هستند و سطرهای جدول JOIN شده فقط اونهایی که با شرط برقرار هستند.

tem988
شنبه 06 اسفند 1390, 00:27 صبح
سلام
من تست کردم ولی mysql هنگ کرد و هر کاری کردم دیگه باز نشد و دوباره ران کردم ولی تغییری در جدول ندیدم
شاید کد رو اشتباه نوشته باشم
میشه یک توضیح کامل تری بدی
اینم کد من

mysql_query("UPDATE posts LEFT JOIN posts_1 ON posts_1.more=posts.more SET posts.more=posts_1.more");

امیـرحسین
شنبه 06 اسفند 1390, 01:05 صبح
محدودش کن. مثلا از آیدی ۱ تا ۵۰۰
این میاد اطلاعات ستون رو میریزه تو اون یکی جدول دیگه. یه JOIN ساده گذاشتم که از اطلاعات تا جدول استفاده کنم.