diff --git a/marzban/fa/examples/mysql-queries.md b/marzban/fa/examples/mysql-queries.md index 40ed4e9..ccc9008 100644 --- a/marzban/fa/examples/mysql-queries.md +++ b/marzban/fa/examples/mysql-queries.md @@ -12,6 +12,10 @@ title: کوئری‌ های کاربردی SQL برای استفاده کردن از کوئری های `SQL` لازم است تا اول `MySQL` را طبق آموزش [راه‌اندازی MySQL](https://gozargah.github.io/marzban/fa/examples/mysql) راه‌اندازی کرده باشید و پنل مدیریت دیتابیس `PhpMyAdmin` را نیز فعال کرده باشید، همچنین `MySQL` در نسخه `v0.3.2` و بالاتر پشتیبانی می‌شود. ::: +::: warning توجه +در خصوص کدهای SQL که به جای خروجی دادن به شما، در دیتابیس تغییر خاصی ایجاد می کنند لازم است تا قبلا از وارد کردن آن ها طبق داکیومنت [بک‌آپ گرفتن](https://gozargah.github.io/marzban/fa/examples/backup) بک‌آپ بگیرید، چونکه ممکن است تغییراتی در دیتابیس ایجاد شود که بازگشت آن ها به قبل امکان پذیر نباشد. +::: + ## نحوه وارد کردن کوئری ابتدا به پنل مدیریت دیتابیس مرزبان که به صورت پیش فرض روی پورت `8010` ران میشه لاگین کنید. در منوی سمت چپ روی `marzban` بزنید بعد بالای صفحه قسمت `SQL` و یک باکس سفید میاد که یک کد پیش فرض نوشته شده، اول آن را پاک می‌کنیم و بعد کوئری را وارد می‌کنیم و در نهایت دکمه `Go` که پایین باکس قرار دارد را می‌زنیم. @@ -105,14 +109,36 @@ WHERE users.admin_id = '1' and users.status= 'active' UPDATE users SET users.status= 'active' WHERE users.admin_id = '1' and users.status= 'disabled' ``` -- اضافه کردن 1 روز به زمان همه کاربران +- اضافه کردن 1 روز به زمان کاربران همه ادمین‌ها سودو و غیر سودو ```sql UPDATE users SET expire=expire+(86400 * 1) WHERE expire IS NOT NULL ``` -- کم کردن 1 روز از زمان همه کاربران +- کم کردن 1 روز از زمان کاربران همه ادمین‌ها سودو و غیر سودو ```sql UPDATE users SET expire=expire-(86400 * 1) WHERE expire IS NOT NULL ``` +- اضافه کردن 1 روز به زمان کاربران یک ادمین خاص +```sql +UPDATE users SET expire=expire+(86400 * 1) WHERE expire IS NOT NULL and admin_id in (100,200) +``` +- کم کردن 1 روز از زمان کاربران یک ادمین خاص +```sql +UPDATE users SET expire=expire-(86400 * 1) WHERE expire IS NOT NULL and admin_id in (100,200) +``` +- اضافه کردن 20 درصد از حجم تعیین شده همه کاربران یک ادمین خاص به آن ها +```sql +UPDATE users SET data_limit = data_limit + (data_limit * 20) / 100 WHERE data_limit IS NOT NULL and admin_id in (100,200) +``` +- کم کردن 20 درصد از حجم تعیین شده همه کاربران یک ادمین خاص از آن ها +```sql +UPDATE users SET data_limit = data_limit - (data_limit * 20) / 100 WHERE data_limit IS NOT NULL and admin_id in (100,200) +``` +::: tip نکته +در خصوص دو اسکریپت `SQL` بالا برای تغییر درصد، عدد `20` را به عدد دلخواه تغییر دهید. دقت کنید بیست درصد از حجم تعیین شده برای هر کاربر به آن اضافه خواهد شد، برای مثال اگر حجم تعیین شده کاربری `100` گیگابایت باشد، بعد از اجرا کردن کد بالا حجم او `120` گیگابایت خواهد بود. +::: +::: tip نکته +در خصوص اسکریپت های `SQL` که برای یک ادمین خاص هستند لازم است تا آیدی ادمین در تیبل دیتابیس را وارد کنید بعد کد را ران کنید، در بعضی کدها ممکن است صرفا یوزنیم ادمین لازم باشد پس تفاوت این دو نوع کد را تشخیص دهید. همچنین در بعضی کدها برای مثال دو آیدی در پرانتز با کاما بین آن ها آمده است، اگر یک ادمین دارید صرفا آیدی یک ادمین را بگذارید و اگر بیش از یک ادمین دارید، به تعداد ادمین ها آن ها را با کاما از هم جدا کنید. +::: - حذف کاربرانی که بیشتر از ۳۰ روز از تاریخ انقضاشون گذشته ```sql delete from users where datediff(now(),from_unixtime(expire))> 30