PDA

View Full Version : لیست کردن محتویات فیلد بر اساس تکرار



tehro0n
پنج شنبه 25 شهریور 1389, 18:20 عصر
من می خوام بهترین روش رو برای لیست کردن محتویات یک فیلد بر اساس تعداد تکرار آن محتویات به کار ببرم.
مثلا فیلد name رو در نظر بگیریم.. اسامی داخل این فیلد نوشته می شوند و حال می خواهیم این اسامی بر اساس بیشترین باری که ذخیره شده اند لیست شوند
Arman 10
Hamid 8
Ali 2
Sara 0
Sama 0
تا عددی که مشخص می کنیم کانتر آن لیست چقدر باشد

اول می خواستم آرایه ای طراحی کنم که یکبار تا آخر این لیست رو بخونه و داخل این آرایه تکرار ها را اضافه کنه انجام بدم، ولی خوب هم CPU خیلی مصرف میشه هم فضای آرایه ها با تعداد زیاد اسامی بالا میره.
راه بهتری رو در نظر دارید؟ یا حداقل بهترین آرایه ای که میشه به کار برد رو برام مثال بزنید.

binyaft
پنج شنبه 25 شهریور 1389, 18:53 عصر
اگه بخواین همشو بگیرین که طبق گفته خودتون CPU رو اشغال میکنه اما میتونید با دستور limit تعداد کمتری رو بردارید

tehro0n
پنج شنبه 25 شهریور 1389, 23:53 عصر
اگه بخواین همشو بگیرین که طبق گفته خودتون CPU رو اشغال میکنه اما میتونید با دستور limit تعداد کمتری رو بردارید

حالت پیش فرض هم با همین limit هست. اگه میشه مثال خودت رو اینجا بگذار که ببینم راه حل شما چیه و دقیقا چطور استفاده می کنی :چشمک:

binyaft
جمعه 26 شهریور 1389, 10:31 صبح
select * from news order by id desc limit 20,30
کئوری بالا از شماره بیستم جدول شروع میکنه و سی تا ی بعدی رو میکشه بیرون

funpatogh
جمعه 26 شهریور 1389, 11:41 صبح
select count(id) as `count`,`name` from `table` group by `name` order by `count` desc

تمام name هارو دسته بندی میکنه و تعداد تکرار هر name رو بهت میگه در ضمن تعداد ها به صورت نزولی لیست میشود یعنی از بیشترین تکرار به کمترین تکرار لیست میشود