PDA

View Full Version : احتیاج به کد not equal فراخوانی از mysql



halfblod
شنبه 05 مرداد 1392, 13:12 عصر
سلام
من برنامه ای دارم که 8 داده آخر را از دیتابیس فراخوانی می کنه


$sql=mysql_query("SELECT * FROM log ORDER BY logid DESC LIMIT 8");


که جدولی که میاره, فقط شامل logid , logtext و userid هست.

حالا می خواهم یک محدودیت بهش بدهم که فقط داده هایی را از mysql بگیره که userid های متفاوتی دارند

(به نحوی از هر userid فقط یک لوگ در این 8داده بیاره)

می شه راهنمایی کنید.

عذر خواهی می کنم, من دست و پا شکسته sql و php می دونم , آمیدوارم منظوررا رسانده باشم

afshin9032
شنبه 05 مرداد 1392, 16:30 عصر
سوال کمی نا مفهوم هست .
اما اگر می خوای که شرط برای فیلد userid بذاری به صورت زیر :

اگر یک user میخوای باشه :

$sql=mysql_query("SELECT * FROM log WHERE userid=2 ORDER BY logid DESC LIMIT 8");

اما اگر میخوای چند تا user رو تعریف کنی :

$sql=mysql_query("SELECT * FROM log WHERE userid IN (1,15,98) ORDER BY logid DESC LIMIT 8");

halfblod
شنبه 05 مرداد 1392, 18:18 عصر
دوست خوبم ممنون از پاسختون

من کوئریی می خوام که از log
8 آخرین دادها بر اساس logid ثبت شده نمایش داده بشه (کدی که بالا گذاشتم)

چیزی که می خوام اضافه کنم, این هست که, داده های یک user را چشم پوشی کنه و از هر کدام یک داده (آخرین داده) نشون میده.

مثلا تیبل من اینجوریه:

logid-----userid-----logtext
9-----2-----somelogtext1
8-----2-----somelogtext2
7-----2-----somelogtext3
6-----1-----somelogtext4
5-----1-----somelogtext5
4-----1-----somelogtext6
3-----5-----somelogtext7
2-----5-----somelogtext8
1-----7-----somelogtext9



می خواهم خروجی این باشه:
logid-----userid-----logtext
9-----2-----somelogtext1
6-----1-----somelogtext4
3-----5-----somelogtext7
1-----7-----somelogtext9

afshin9032
یک شنبه 06 مرداد 1392, 23:10 عصر
از GROUP BY استفاده کن


$sql=mysql_query("SELECT * FROM log GROUP BY userid");

halfblod
دوشنبه 07 مرداد 1392, 13:56 عصر
ممنون دوست خوبم, من از group by استفاده کردم قبلا, زیاد به کارم نیومد..
چون اولین داده ایی که با اون userid را نشان می ده, نه آخرین داده...
می خوام جوری باشه که آخرین logid که با userid ذخیره شذه را نشون بده...............

afshin9032
دوشنبه 07 مرداد 1392, 18:38 عصر
لینک زیر رو یک نگاه بنداز ، شبیه منظور شما می باشد :
http://stackoverflow.com/questions/924494/mysql-group-by-ordering