فیلتر رکورد های تکراری هنگام نمایش mysql
در مطالب قبلی مورد بررسی قرار دادیم که چطور می شود نتایج تکراری را از جداول حذف کرد . اما امروز میخواهیم کدی را بررسی کنیم که اگر شما آن را اجرا کنید فقط به هنگام نمایش آن نتایج حذف شوند! یعنی هنگامی که شما دستور را اجرا می کنید ، نتایج تکراری نمایش داده نشوند و نتایج تکراری در دیتابیس باقی بمانند . برای این کار از کلمه DISTINCT استفاده می کنیم . به کد زیر توجه کنید :
SELECT DISTINCT `email` FROM `members`;
کد بالا ، از جدول members ، تمام کاربران را انتخاب می کند با این شرط که ایمیل های آن ها تکراری نباشد . اگر ایمیل دو کاربر یکسان بود یکی از آن ها را نمایش می دهد و دیگری را حذف می کند (فقط توجه داشته باشید که این حذف در هنگام نمایش هست و هیچ تاثیری روی جدول ندارد ) . اگر این دستور را تست کنید مشاهده می نمایید که تنها فیلد email را نمایش می دهد. به عنوان مثال اگر میخواهید نام کاربری را نیز نمایش دهد از کد زیر استفاده می کنیم :
SELECT DISTINCT `email`,`username` FROM `members`;
در پایان توجه داشته باشید که در آخر دستور شما میتوانید از WHERE و عملگر های دیگر نیز استفاده کنید.
2 thoughts on “فیلتر رکورد های تکراری هنگام نمایش mysql”
اگه میشد دستوری به اسکیوال یا php بدیم که داده تکراری نذاره ثبت شه خیلی خوب می شد
سلام
میتونید ستونی که قصد دارید داده تکراری دریافت نکند را بصورت unique تعریف کنید.