سلام خدمت دوستان
یک جدول توی mysql که فیلد کلیدیش ID شون است حالا می خواهم یک کوئریاز جدولم بگیرم که بر اساس id به صورت نزولی مرتب شوند اما نمی خواهم آخرین id (جدیدترین مطلبی را که وارد شده) نمایش داده شود.
با تشکر
سلام خدمت دوستان
یک جدول توی mysql که فیلد کلیدیش ID شون است حالا می خواهم یک کوئریاز جدولم بگیرم که بر اساس id به صورت نزولی مرتب شوند اما نمی خواهم آخرین id (جدیدترین مطلبی را که وارد شده) نمایش داده شود.
با تشکر
Select * from tableName
Where ID not in(Select Top 1 ID from tableName order by ID DESC)
order by ID DESCاینو دقیقاً نمی دونم جواب بده یا نه.حالا یه امتحان بکنید ضرر نداره.
دلیل نداره وقتی جواب سوالی رو نمی دونی، جواب بدی و بیشتر کاربر رو به چالش بکشونی!!!!
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
توی درست بودن گرامر دستور شک دارم ولی میدونم الگوریتم همینه.
با سلام
SELECT * FROM tableName
WHERE ID < (SELECT MAX(ID) FROM tableName)
ORDER BY ID DESC
روش جناب/سرکار mrrajabi کاملا" درسته.دلیل نداره وقتی جواب سوالی رو نمی دونی، جواب بدی و بیشتر کاربر رو به چالش بکشونی!!!!
خوب من مطمئنم شما SQL Server رو خوب بلدی، و البته مطمئنم MySQL بلد نیستی :)
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
اگر همیشه منظورت فقط و فقط کاهش یک سطره، بهتره این کار رو سمت پایگاه داده انجام ندی و سمت برنامه نویسی بنویسی. چون تقریبا سرعت کوئری ات با این روش دو برابر میشه.
ایمیل من
سایت من
عضویت در جامعهی اهدای عضو
Direct PGP key: http://tinyurl.com/66q5cy
PGP key server: keyserver.ubuntu.com
PGP name to search: omidmottaghi
درستهاگر همیشه منظورت فقط و فقط کاهش یک سطره، بهتره این کار رو سمت پایگاه داده انجام ندی و سمت برنامه نویسی بنویسی. چون تقریبا سرعت کوئری ات با این روش دو برابر میشه.
ولی ایشون فقط کوئری خواستن.دیگه با چند و چون کار ,کاری نداشتن.
موافقم.اگر همیشه منظورت فقط و فقط کاهش یک سطره، بهتره این کار رو سمت پایگاه داده انجام ندی و سمت برنامه نویسی بنویسی. چون تقریبا سرعت کوئری ات با این روش دو برابر میشه.
البته در یک صورت مخالفم :
اگر تعداد رکوردهایی رو که میخوای توی کوئریت بگیری، مشخصه(مثلاً 30 تا) می تونی اینکارو بکنی :
SELECT * FROM table ORDER BY id DESC LIMIT 1,30
دم همه دوستای گلم گرم.
فکر نمی کردم اینجا به این زودی اینهمه جواب داده بشه.
راه اول را که به نتیجه نرسیدم. اما پس از کلی فکر کردن روش آخر به کارم اومد که دیدم دوستان زحمتش رو کشیدن.
ولی واقعاً برام سوال پیش اومده اگه کلی رکورد (با تعداد نامعلوم)داشته باشم بخوام مثلاً 100 تای اول آن نمایش داده نشه چکار باید بکنم.
یبار باید تعداد رکورد ها رو بدست بیارید و بعدش همون Selectبا Limit رو بکار ببرید.ولی واقعاً برام سوال پیش اومده اگه کلی رکورد (با تعداد نامعلوم)داشته باشم بخوام مثلاً 100 تای اول آن نمایش داده نشه چکار باید بکنم.
SELECT * FROM table ORDER BY id DESC LIMIT 101,nکه n همون تعداد رکوردها هست که از تابع count بدست میاد.
البته فکر کنم اگه یه مقدار کوئری رو پیچیده اش کرد، بشه با یک کوئری هم گرفت.
تست میکنم، اکه موفق شدم، میذارمش