جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
کد تخفیف اسنپ تاکسی با 50% تخفیف! دریافت کد
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

چگونه در MySQL دستور LIMIT رو داینامیک کنیم؟


2
0
1128
30,000تومان

دارم روی بخش نوتیفیکیشن های یک پروژه کار میکنم. جدول notifications به این شکل هست ساختارش:

// notifications
+----+--------------+------+---------+------------+
| id |      event   | seen | id_user | time_stamp |
+----+--------------+------+---------+------------+
| 1  | vote         | 1    | 123     | 1464174617 |
| 2  | comment      | 1    | 456     | 1464174664 |
| 3  | vote         | 1    | 123     | 1464174725 |
| 4  | answer       | 1    | 123     | 1464174813 |
| 5  | comment      | NULL | 456     | 1464174928 |
| 6  | comment      | 1    | 123     | 1464175114 |
| 7  | vote         | NULL | 456     | 1464175317 |
| 8  | answer       | NULL | 123     | 1464175279 |
| 9  | vote         | NULL | 123     | 1464176618 |
+----+--------------+------+---------+------------+

من قصد دارم اون لیست نوتیفیکیشن ها رو بسازم که وقتی روی زنگوله نوتیفیکیشن ها کلیک میشه، لیستش باز میشه. توی اون لیست میخوام حداقل 15 تا نوتیفیکیشن باشه (اگه موجوده)، فقط 2 تا شرط وجود داره:

  1. همیشه تمام نوتیفیکیشن های دیده نشده (seen = NULL) باید باشن (یعنی select بشن توی کوئری)، حتی اگه همونا تعدادشون از 15 تا عبور کنه.

  2. اگر تعداد نوتیفیکیشن های دیده نشده از 14 تا بیشتر بود، باید 2 تا از نوتیفیکیشن های دیده شده (seen = 1) هم باشن توی لیست (یعنی select بشن توی کوئری)

مثال: توی جدول پایین، read تعداد سطرهایی (نوتیفیکیشن هایی) هستن که خوانده شدن و unread تعداد نوتیفیکیشن هایی هستن که خوانده نشدن توی جدول notifications:

 read | unread |          output should be           
------|--------|-------------------------------------
 3    | 8      | 11 rows                             
 12   | 5      | 15 rows (5 unread, 10 read)         
 20   | 30     | 32 rows (30 unread, 2 read)         
 10   | 0      | 10 rows (0 unread, 10 read)         
 10   | 1      | 11 rows (1 unread, 10 read)         
 10   | 6      | 15 rows (6 unread, 9 read)          
 100  | 3      | 15 rows (3 unread, 12 read)         
 3    | 100    | 102 rows (100 unread, 2 read)

فکر میکنم جدول بالا بهترین توضیح هست.

  • مثلا توی سطر اول گفته که اگر مثلا 3 تا نوتیفیکیشن خوانده شده داشته باشیم و 8 تا خوانده نشده، باید 11 تا نوتیفیکیشن (همش) select بشه.
  • یا مثلا توی سطر 2 گفته که اگر مثلا 12 تا نوتیفیکیشن خوانده شده داشته باشیم و 5 تا خوانده نشده، باید مجموعا 15 تا نوتیفیکیشن select بشه که متشکل از 5 تا خوانده نشده و 10 ت خوانده شده هست.

تا اینجای کوئری رو خودم تونستم بنویسم، ممنون میشم اگر کمکم کنید تمومش کنم:

SELECT id, event, seen, time_stamp 
 FROM notifications n
 WHERE id_user = :id AND seen IS NULL
) UNION 
(SELECT id, event, seen, time_stamp 
 FROM notifications n
 WHERE id_user = :id 
 ORDER BY (seen IS NULL) desc, time_stamp desc
 LIMIT 15
)
ORDER BY (seen IS NULL) desc, time_stamp desc;
علمی برنامه-نویسی جی-کوئری
سوال شده در سعید مرادی
1933 امتیاز

500 کاراکتر باقی مانده

1 جواب (پاسخ تاییده شده: در حال حاضر ندارد)

این سوال رایگان نمی باشد و پس از حمایت از این سوال (توسط لینک بالا)، شما قادر به مشاهده ی پاسخ ها خواهید بود.

جواب شما
     
.....
×

×

جعبه لام تا کام


وب سایت لام تا کام جهت نمایش استاندارد و کاربردی در تمامی نمایشگر ها بهینه شده است.

تبلیغات توضیحی


عرشیان از کجا شروع کنم ؟
تغییر و تحول با استاد سید محمد عرشیانفر

تبلیغات تصویری


کپی