حذف مقادیر از MySQL با دستور DELETE

مدیریت اطلاعات پایگاه داده به ذخیره (INSERT)، انتخاب (SELECT) و به روزرسانی (UPDATE) ختم نمی شود، دیر یا زود و به دلایل مختلف، سیستم ما نیاز خواهد داشت که مواردی را از دیتابیس حذف نماید، از این رو یکی دیگر از پرس و جوهای (query های) MySQL، دستور حذف ردیف ها با استفاده از DELETE است که در ادامه با آن آشنا خواهیم شد، آشنایی دقیق با این دستور از این لحاظ حائز اهمیت است که اگر در تعیین پارامترهای آن اشتباهی انجام دهیم، ممکن است موجب حذف مواردی ناخواسته شویم.
شیوه نگارش (syntax) دستور DELETE
نحوه استفاده از دستور DELETE در MySQL شباهت زیادی با سایر دستوراتی که تا این لحظه بررسی کرده ایم (مانند SELECT، UPDATE و...) دارد و البته رعایت نکات خاص آن نیز ضروری است، به مثال زیر توجه کنید.
<?php
mysql_query("DELETE FROM table WHERE id = '1'")
or die(mysql_error());
?>
با این دستور ساده، ردیف یا ردیف هایی در دیتابیس که مقادیر ستون id آنها برابر عدد 1 باشد حذف خواهند شد، ملاحظه می کنید که اگر به فرض پارامتر WHERE استفاده نشود یا اینکه به اشتباه تعیین گردد، موجب حذف موارد ناخواسته خواهد شد، لذا در استفاده از دستور DELETE باید دقت نمود و قبل از هر چیز از اطلاعات حساس دیتابیس پشتیبان تهیه کرده و دستورات را نیز قبل از استفاده نهایی، حتی الامکان تست کرد.یک مثال کاربردی با دستور DELETE
برای آشنایی بیشتر با دستور DELETE، یک مثال کاربردی را با هم مرور می کنیم، فرض کنید در دیتابیس خود در جدول users اسامی و مشخصات کاربران را در ستون های id، name، pass، age و... ذخیره کرده ایم، حال می خواهیم کاربرانی که نام آنها با حرف ب فارسی یا B لاتین شروع می شود را حذف کنیم، بدین منظور خواهیم نوشت:
<?php
$con = mysql_connect("localhost","root","")
or die(mysql_error());
mysql_select_db("test")
or die(mysql_error());
$search_fa = 'ب';
$search_en = 'B';
$delete = mysql_query("DELETE FROM users WHERE name LIKE '$search_fa%' OR name LIKE '$search_en%'")
or die(mysql_error());
mysql_close($con);
?>
توضیح:- همان طور که ملاحظه می کنید، در دستور DELETE می توانیم از WHERE و پارامترهای وابسته به آن مانند OR ، AND ، LIKE و... استفاده کنیم.
- هنگامی که در کنار دستور DELETE از WHERE و LIKE استفاده می کنیم، باید دقت کنیم که علامت % در ابتدا، انتها یا در هر دو سمت پارامتر، نقشی تعیین کننده در نحوه تفسیر دستورمان خواهد داشت که البته در این مورد در مباحث قبلی صحبت کرده ایم.
حذف مقادیر چندگانه با دستور DELETE
در پایان این آموزش بد نیست یک مثال پیشرفته تر را نیز با هم بررسی کنیم، حتما تا به حال صفحات و سایت هایی را دیده اید که با انتخاب چند مورد، می توان تمام آنها را در یک بار و هم زمان حذف نمود، برای این کار ابتدا یک فرم HTML در نظر می گیریم که مقادیر را به صورت آرایه ارسال کند.
<form action="#" method="post">
<input type="checkbox" name="delete[]" value="1">
<input type="checkbox" name="delete[]" value="2">
<input type="checkbox" name="delete[]" value="3">
<input type="checkbox" name="delete[]" value="4">
<input type="submit" value="ارسال">
</form>
نکته: علامت [] در قسمت نام فیلدها باعث می شود موارد به صورت یک آرایه به سرور ارسال شوند.سپس در سرور از حلقه های for یا foreach می توانیم استفاده کنیم، به مثال زیر توجه کنید.
<?php
@$delete_array = $_POST['delete'];
$con = mysql_connect("localhost","root","")
or die(mysql_error());
mysql_select_db("test")
or die(mysql_error());
foreach($delete_array as $key => $value){
$delete = mysql_query("DELETE FROM users WHERE id = '$value' LIMIT 1")
or die(mysql_error());
}
mysql_close($con);
?>
توضیح:- برای دریافت متغیر ارسال شده از طرف فرم HTML کافی است از روش های معمول (متد GET یا POST) استفاده کنید.
- اکنون اگر از متغیر delete_array با دستور print_r خروجی بگیرید، کلیدها و مقادیر آرایه به صورت زیر خواهد بود.
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
به این ترتیب می توان در یک دستور foreach از کلید و مقدار آرایه ارسال شده در query مربوط به DELETE استفاده کرد.دسته بندی: آموزش مقدماتی » MySQL
برچسب ها: MySQL

نحوه ذخیره کردن اطلاعات با دستور INSERT در MySQL
توابع تجمیعی (Aggregate Functions) در MySQL
اتصال PHP به MySQL با اکستنشن MySQLi
استفاده از JOIN و ساخت پرس و جوی ترکیبی در MySQL
به روز رسانی ردیف ها در MySQL با UPDATE
دیدگاه


روزمرگی های یک مهندس عمران
۲۱:۲۹ ۱۴۰۳/۰۹/۱۱
در جستجوی یک مطلب در مورد مهندسی عمران داشتم میگشتم که رسیدم به این سایت وبگو که یک سایت تخصصی آموزش برنامه نویسی وب و مهارت های مرتبط و برام خیلی جالب بود ببینم قضیه چیه!؟ چیزی در این مورد ندیدم ولی حدس میزنم در بخش نظرات کاربران و کامنت ها یکی از کاربران مهندسی عمران در کد نویسی دچار مشکل شده باشه. در هر حال خوب شد سایت وبگو رو دیدم و چیزای جدید یاد گرفتم .
بهاره هوشمندی
۰۰:۴۸ ۱۴۰۲/۰۸/۱۷
با سلام و درود استاد بزرگوار
یه مشکل برام پیش اومده توی مطالب ارسالی سایت محتوایی به این صورت به متن ها اضافه شده
وگرنه مجبورم تک به تک ویرایش و حذف کنم
با تشکر از شما
یه مشکل برام پیش اومده توی مطالب ارسالی سایت محتوایی به این صورت به متن ها اضافه شده
موضوعات مرتبط: * (چهارم ابتدایی) *، فارسی
موضوعات مرتبط: * (پنجم ابتدایی) *، ریاضی
که زیاد هستند و بخوام دونه به دونه حذف کنم زمان زیادی طول می کشه بصورت html محتوا اینطوری میشه<br>موضوعات مرتبط: <a rel='nofollow' href="/category/4">* (چهارم ابتدایی) *</a>، <a rel='nofollow' href="/category/24">فارسی</a><br><br>
خیلی زیادن متاسفانه میخواستم بدونم میشه از طریق sql اینارو با دستوری چیزی حذف کرد؟وگرنه مجبورم تک به تک ویرایش و حذف کنم
با تشکر از شما
در برنامه phpMyAdmin با دستور DELETE و تنظیم REGEXP می توانید الگوی دلخواه را قرار دهید، منتها باید ساختار داده های دیتابیس به دقت بررسی شوند تا الگو بدون اشکال باشد و ردیفی اشتباهی حذف نشود یا ردیف های اضافه باقی نمانند، کار کردن با تابع REGEXP نیاز به مهارت و آشنایی قبلی دارد و الگو هم باید دقیق و منطبق با روال داده های موجود در دیتابیس نوشته شود، توصیه می کنیم در صورت استفاده از این راه حل قبل از هر چیز از کل دیتابیس پشتیبان داشته باشید و در درجه دوم قبل از اجرای دستور DELETE با Query مشابه یک دستور SELECT اجرا کنید و ردیف هایی که تحت تاثیر قرار می گیرند را بررسی کنید تا اشتباهی در حذف داده ها اتفاق نیفتد.
https://www.geeksforgeeks.org/mysql-regular-expressions-regexp/
در صورتی که در نوشتن الگو مشکل داشتید یک نمونه از خلاصه اطلاعات دیتابیس را به صورت فایل sql خروجی بگیرید و به آدرس ایمیل ما (موجود در بخش تماس) ارسال کنید تا در فرصت مقتضی بررسی کنیم.۰۲:۳۹ ۱۳۹۹/۰۷/۰۷
سلام و عرض ادب.
سایت من هک شده و یک کد ریدایرکت تو دیتابیس هاستم بارگزاری شده
حالا من سوالم اینه که میشه از طریق این کدها تو phpmyadmin از طریق sql اون کد ردایرکت را حذف کرد؟؟؟؟
سایت من هک شده و یک کد ریدایرکت تو دیتابیس هاستم بارگزاری شده
{script src='http//sbono.declarebusinessgroup.gam.jsn=ns1' type='textjavascript'script}
که آخر همه پست ها تو بخش wp_posts دیده میشه.حالا من سوالم اینه که میشه از طریق این کدها تو phpmyadmin از طریق sql اون کد ردایرکت را حذف کرد؟؟؟؟
دستور DELETE کل ردیف را حذف می کند، برای ایجاد تغییر در بخشی از محتوای ستون مورد نظر می توانیم از دستور UPDATE به صورت نمونه زیر (جدول فرضی posts ستون post) استفاده کنیم:
UPDATE posts SET post = REPLACE(post, '{script src=\'http//sbono.declarebusinessgroup.gam.jsn=ns1\' type=\'textjavascript\'script}', '') WHERE post LIKE '%{script src=\'http//sbono.declarebusinessgroup.gam.jsn=ns1\' type=\'textjavascript\'script}%'
نکته مهم: ایجاد تغییرات در این حالت بدون بازگشت است و باید حتما قبل از انجام هرگونه تغییری از اطلاعات دیتابیس پشتیبان تهیه شود.amir
۰۱:۴۸ ۱۳۹۹/۰۴/۰۷
سلام من اگه بخوام با وارد کردن یه id داخل یک text کل اون ردیف پاک بشن باید چه کنم مثلا یک text دریافت میکنم مثلا اون 23 باشه الان باید کل ردیف 23 پاک بشه
با فرض اینکه هر ردیف یک ستون با نام id داشته باشند می توانید مقادیر ارسال شده از فرم HTML را با متد POST یا GET (بسته به متدی که در قسمت action تگ form تنظیم کرده ایم) دریافت کرده و در پرس و جوی DELETE قرار دهیم، مثال:
<input type="text" name="input_id" value="1">
@$id = $_POST['input_id'];
DELETE FROM table WHERE id = '$id' LIMIT 1
نکته مهم در اینجا رعایت بحث امنیت دیتابیس است، با توجه به اکستنشن مورد استفاده باید روش متناسب را روی پارامترهای دریافتی از سمت کاربر انجام دهیم (این آموزش قدیمی است و از اکستنشن MySQL استفاده می کند، برای پروژه های جدید MySQLi یا PDO توصیه می شود که در آموزش های مقدماتی MySQL در این خصوص صحبت کرده ایم، آموزش های قدیمی به مرور در حال ویرایش و به روزرسانی بر اساس اکستنشن های جدید هستند).ماردین
۱۵:۵۲ ۱۳۹۹/۰۲/۱۶
سلام من میخواستم ببینم چکار کنم که اولین query رو بدون حذف بقیه query ها حذف کنم
با الگوبرداری از نمونه کد زیر به راحتی می توانید دور اول حلقه را از چرخه خارج کنید:
$counter = 1;
foreach($delete_array as $key => $value){
if($counter > 1){
$delete = mysql_query("DELETE FROM users WHERE id = '$value' LIMIT 1")
or die(mysql_error());
}
$counter++;
}
محمود
۱۰:۳۸ ۱۳۹۷/۰۴/۱۲
با سلامی دوباره خدمت استاد گرامی
من با حذف خانه یا متن داخل جدولی که ساختم مشکل دارم. همانطور که می بینید این جدول به دیتابیس وصل نیست و نمیخام هم به دیتابیس وصل کنم. میخام با کلیک کردن روی هر row ، خونه مورد نظر حذف شود و ترتیب ردیف ها هم حفظ شود. لطفن کمک کنید. با کمال تشکر.
من با حذف خانه یا متن داخل جدولی که ساختم مشکل دارم. همانطور که می بینید این جدول به دیتابیس وصل نیست و نمیخام هم به دیتابیس وصل کنم. میخام با کلیک کردن روی هر row ، خونه مورد نظر حذف شود و ترتیب ردیف ها هم حفظ شود. لطفن کمک کنید. با کمال تشکر.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
ids = [];
var rows = 0;
var tr;
function myclick(id){
if(id > 0){
document.getElementById(id).style.background="#88eeec";
ids[id] = id;
}
}
function del(){
var table = document.getElementById("tbl");
if(rows == 0){
rows = table.getElementsByTagName('tr').length;
}
for(var i = 1; i <= rows; i++){
if(typeof(ids[i]) != 'undefined' && ids[i] != 0){
tr = document.getElementById(ids[i]);
table.deleteRow(tr.rowIndex);
ids[i] = 0;
}
}
}
function don(){
}
</script>
</head>
<body>
<table width="80%" border="1" cellspacing="1" cellpadding="2" id="tbl">
<tr>
<td width="33%" id="_1">کد انبار</td>
<td width="22%">کد کالا</td>
<td width="32%">نام کالا</td>
<td width="13%">ردیف</td>
</tr>
<tr style="cursor:pointer;" onclick="myclick(this.id)" id="1">
<td> </td>
<td> </td>
<td> </td>
<td>1</td>
</tr>
<tr style="cursor:pointer;" onclick="myclick(this.id)" id="2">
<td> </td>
<td> </td>
<td> </td>
<td>2</td>
</tr>
<tr style="cursor:pointer;" onclick="myclick(this.id)" id="3">
<td> </td>
<td> </td>
<td> </td>
<td>3</td>
</tr>
</table>
<p>
<button onclick="del()" id="1">delete!</button>
</p>
</body>
</html>
کد بالا مطابق با توضیحات ویرایش شد.
arita
۱۳:۵۷ ۱۳۹۷/۰۲/۲۴
با سلام
ببخشید چطور می شه داده ای رو حذف کرد که در برنامه حذف بشه ولی در پایگاه داده باقی بمونه؟ این چه نوع حذفیه؟
با تشکر.
ببخشید چطور می شه داده ای رو حذف کرد که در برنامه حذف بشه ولی در پایگاه داده باقی بمونه؟ این چه نوع حذفیه؟
با تشکر.
در کل حذف به این شیوه هم می تواند شامل مخفی سازی بخشی از اطلاعات از دید کاربر در مرورگر باشد که در این صورت در وب معمولا از جاوا اسکریپت و CSS برای این منظور استفاده می شود، هم می تواند به طور مثال شامل تغییر مقدار ستون مختص به نمایش اطلاعات در دیتابیس به فرض از 1 به 0 باشد، در واقع با این کار اطلاعات در دیتابیس موجود است و صرفا در هنگام چاپ خروجی مقدار ستون (به فرض status) را بررسی می کنیم اگر 1 بود اطلاعات در خروجی چاپ می شود و اگر 0 بود اطلاعات چاپ نخواهد شد.
۱۳:۴۹ ۱۳۹۷/۰۱/۰۵
سلام. قالب سایت ما قبلا یه پلاگین داشت که می شد مطالب مهم رو در کادرهای رنگی قرار داد توی نسخه جدیدش این پلاگین رو برداشته و هیچ جایگزینی هم براش در نظر نگرفته الان قالب جدیدش دیگه نمی تونه اون کدها رو بخونه و تبدیلشون کنه به کادرهای رنگی و داره فقط کدها رو نشون میده.
مثلا متن زیر قبلا داخل کادر بود ولی الان بین 2 تا دستور گیر کرده:
مثلا متن زیر قبلا داخل کادر بود ولی الان بین 2 تا دستور گیر کرده:
[vc_message message_box_color=”success”]
نجات غریق به فردی اطلاق میشود که چیره به فن شناست و برای حفظ و نگهبانی ........
[/vc_message]
یه دستوری می دید که توی دیتابیس وارد کنم و همه کلمات مثل زیر رو حذف کنم در داخل متن مقالات؟ [vc_message message_box_color=”success”]
[/vc_message]
برای جستجو و حذف یک الگو در MySQL می توانید از نمونه دستور زیر استفاده کنید:
UPDATE `tbl_name` SET `col_name` = REPLACE(`col_name`,'[vc_message message_box_color=”success”]','')
جهت جلوگیری از حذف ناخواسته اطلاعات قبل از انجام هر گونه دستور بر روی دیتابیس حتما از جداول پشتیبان تهیه نمائید.مجتبی
۰۰:۲۱ ۱۳۹۶/۰۵/۰۴
سلام علیکم
یک جدول دارم با نام tweet حاوی دو فیلد tweet_txt, tweet_id میباشد.
در این جدول رکوردهایی وجود دارد که محتوای فیلد tweet_txt آن توییتهای چینی و عربی و فارسی و انگلیسی میباشد. حال بنده میخواهم رکوردهای غیر انگلیسی را حذف کنم و تنها فقط رکوردهای انگلیسی را نگهداری کنم.
لطفا راهنمایی لازم را انجام دهید. با تشکر
یک جدول دارم با نام tweet حاوی دو فیلد tweet_txt, tweet_id میباشد.
در این جدول رکوردهایی وجود دارد که محتوای فیلد tweet_txt آن توییتهای چینی و عربی و فارسی و انگلیسی میباشد. حال بنده میخواهم رکوردهای غیر انگلیسی را حذف کنم و تنها فقط رکوردهای انگلیسی را نگهداری کنم.
لطفا راهنمایی لازم را انجام دهید. با تشکر
انجام دقیق این کار صرفا با روش حذف دستی امکانپذیر است، به فرض اگر برای حروف انگلیسی بتوانیم الگویی تعریف کنیم ممکن است در بین جمله کاراکتری درج شود که به فرض چینی، فارسی یا عربی باشد و در نتیجه به صورت ناخواسته منجر به حذف ردیف شویم، به هر صورت برای این کار باید کدنویسی PHP بلد باشید یا از دستورات REGEXP یا RLIKE در MySQL استفاده کنید، مثال:
DELETE FROM tbl WHERE NOT tweet_txt REGEXP '[A-Za-z0-9\s\S\.]';
دستور بالا کامل نیست و نیاز به کار بیشتر دارد، به طور مثال تمام کاراکترهای خاص را شامل نمی شود.امیرحسین
۱۵:۲۷ ۱۳۹۶/۰۲/۲۳
سلام استاد عزیز
لطفا در مورد معماری سه لایه mvc در php نیز آموزش کامل را بدهید چون در هیچ سایتی آموزش کامل و درستی قرار داده نشده و شما لطف بزرگی میکنید در این مورد با تشکر
لطفا در مورد معماری سه لایه mvc در php نیز آموزش کامل را بدهید چون در هیچ سایتی آموزش کامل و درستی قرار داده نشده و شما لطف بزرگی میکنید در این مورد با تشکر
موضوع خیلی خوبی است اما متاسفانه در کوتاه مدت به دلیل به روزرسانی سیستم و مطالب فعلی سایت، امکان نگارش مطالب جدید برای این مبحث وجود ندارد!
امیرحسین
۲۳:۲۰ ۱۳۹۶/۰۲/۲۲
سلام استاد عزیز
شما اینجا گفتید برای اینکه چند تا رکورد از جدول حذف کنیم میتوانیم از دستور foreach در پی اچ پی استفاده کنیم ولی اگر به فرض ما خواستیم 20 رکورد حذف کنیم باید 20 بار کوئری اجرا بشه اینطوری که صفحه هنگ میکنه اگه 100 خواستیم پاک کنیم چی؟ دیگه هنگم اون برتر میکنه خب برای اینکه من چند بار کوئری اجرا نکنم یه همچین دستوری نوشتم
شما اینجا گفتید برای اینکه چند تا رکورد از جدول حذف کنیم میتوانیم از دستور foreach در پی اچ پی استفاده کنیم ولی اگر به فرض ما خواستیم 20 رکورد حذف کنیم باید 20 بار کوئری اجرا بشه اینطوری که صفحه هنگ میکنه اگه 100 خواستیم پاک کنیم چی؟ دیگه هنگم اون برتر میکنه خب برای اینکه من چند بار کوئری اجرا نکنم یه همچین دستوری نوشتم
DELETE FROM tbl_category WHERE `id` IN(1,2,3)
اگر کوئری را این مدلی اجرا کنیم کار میکنه همه ای دی های مورد نظر حذف می شوند منتها اگر من این مدلی وارد کردمDELETE FROM tbl_category WHERE `id` IN(?)
از دستورات اماده استفاده کردم و نکته بعدی اینکه من یه ارایه دارمarray(50,51)
و ارایه را جوین کردم$items = join(',',$items)
و متغیر item را در bindvalue در pdo گذاشتم و مشکلی که داره اینه که فقط بین 50 و 51 فقط اولی یعنی 50 حذف میشهWHERE `id` IN(50,51)
متوجه شدم که bindvalue یا bindparam باWHERE `id` IN(?)
مشکل داره اگر بجای علامت سوال من متغیر n را قرار بدهم و داخل متغیر n این مقدار باشد 1,2 و همچنین بایند پارام را استفاده نکنم دستور دیلیت درست کار میکنه همه رکوردها با ای دی مورد نظر (1,2) را پاک میکنه اما مشکل از جایی شروع میشه که بنده از دستورات اماده استفاده میکنم و علامت سوال میگذارم و و متغیر n را در بایند پارام پاس میدهم اینجا فقط دستورWHERE `id` IN(?)
میاد فقط اولین خونه را پاک میکنه به فرض 1,2 بجای اینک هم 1 و هم 2 را پاک کنه فقط 1 را پاک میکنهدر مورد استفاده از DELETE در حلقه، حق با شما است، این شیوه به صورت فعلی بهینه نیست، البته برای کارکردهای عادی مشکل خاصی پیش نخواهد آمد (آموزش اصلاح خواهد شد!)، در خصوص سوال مطرح شده به نظر باید به تعداد ID های موجود در آرایه، علامت ? در قسمت IN به صورت رشته داشته باشید، مثال:
$array = array(1, 2, 3, 4);
$count = count($array);
$question_marks = array_fill(0, $count, '?');
$query = 'DELETE * FROM foo WHERE bar IN (' . implode(',', $question_marks ). ')';
$statement = $pdo->prepare($query);
$statement->execute(array_values($array));
در صورتی که مشکل پابرجا بود، لطفا یک نمونه کد کامل به آدرس ایمیل ما (موجود در بخش تماس) ارسال کنید تا بررسی کنیم.sanam
۱۳:۳۹ ۱۳۹۶/۰۲/۰۴
وقتی یک یا چند ردیف رو حذف میکنم آی دی ردیفهای باقی مونده تغییر نمیکنه میخوام وقتی مثلا پنج ردیف اول حذف میشه آی دی از شش شروع نشه و دوباره از یک شروع بشه لطفا راهنماییم کنید
ممنون
ممنون
برای تغییر ID ها از ابتدا می توانید از یکی از نمونه کدهای زیر استفاده کنید:
SET @count = 0;
UPDATE `tbl_name` SET `tbl_name`.`id` = @count:= @count + 1;
ALTER TABLE `tbl_name` DROP `id`;
ALTER TABLE `tbl_name` AUTO_INCREMENT = 1;
ALTER TABLE `tbl_name` ADD `id` int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
اگر صرفا می خواهید شمارش AUTO_INCREMENT تغییر کند:ALTER TABLE `tbl_name` AUTO_INCREMENT = 1;
در قسمت tbl_name نام جدول مربوطه را وارد کنید.حسین
۰۱:۴۴ ۱۳۹۴/۱۰/۲۰
بسیار سپاس گذارم بابات راهنمایی خیلی خوبتون
واقعا دو روزه گرفتارشم همش درگیر کد های php بودم که بتونم سطر به سطر جدول رو چک کنم و خذف ولی غیر از هنگ کردن سیستم نتیجه ای نداشتم
بازم سپاس گزارم بابات جوابتون
واقعا دو روزه گرفتارشم همش درگیر کد های php بودم که بتونم سطر به سطر جدول رو چک کنم و خذف ولی غیر از هنگ کردن سیستم نتیجه ای نداشتم
بازم سپاس گزارم بابات جوابتون
حسین
۱۸:۰۶ ۱۳۹۴/۱۰/۱۷
با سلام چطور میشه ردیف ها مشابه در بانکها اطلاعاتی حجیم رو حذف کرد مثلا سرچ کنه در بانک اطلاعاتی و ردیف های که ای دی مشابه دارن حذف بشن
سلام
چندین راه برای انجام این کار وجود دارد، اما مطمئن ترین حالت این است که ابتدا در برنامه phpMyAdmin با استفاده از دستور زیر یک نمونه جدول از جدول موجود بسازید:
چندین راه برای انجام این کار وجود دارد، اما مطمئن ترین حالت این است که ابتدا در برنامه phpMyAdmin با استفاده از دستور زیر یک نمونه جدول از جدول موجود بسازید:
CREATE TABLE temp_new_tbl LIKE old_tbl;
INSERT INTO temp_new_tbl SELECT * FROM old_tbl GROUP BY id;
سپس در صورتی که اطلاعات جدول به طور کامل و صحیح کپی شده باشد، دستور زیر را اجرا و جدول قدیمی را حذف کنید (قاعدتا حذف جدول قدیمی الزامی نیست و می توانید به جای حذف، نام جدول را تغییر دهید):DROP TABLE old_tbl;
RENAME TABLE temp_new_tbl TO old_tbl;
حمید
۱۳:۱۶ ۱۳۹۴/۱۰/۱۲
سلام، من می خوام یه فرم Html طراحی کنم که با وارد کردن ID، کاربری که اون ID رو داره حذف بشه...
میشه راهنمایی کنید؟
میشه راهنمایی کنید؟
سلام
می توانید بر طبق نیاز به فرض یک فیلد از نوع input داشته باشید که پس از وارد کردن ID و کلیک بر روی دکمه ارسال، فرم با متد POST یا GET به سرور ارسال شده و در آنجا پردازش های مورد نیاز صورت گیرد، یک آموزش مشابه در سایت وجود دارد، لطفا عبارت "آموزش حذف گروهی اطلاعات از MySQL با استفاده از چک باکس" را در وب جستجو کنید!
می توانید بر طبق نیاز به فرض یک فیلد از نوع input داشته باشید که پس از وارد کردن ID و کلیک بر روی دکمه ارسال، فرم با متد POST یا GET به سرور ارسال شده و در آنجا پردازش های مورد نیاز صورت گیرد، یک آموزش مشابه در سایت وجود دارد، لطفا عبارت "آموزش حذف گروهی اطلاعات از MySQL با استفاده از چک باکس" را در وب جستجو کنید!
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.