Skip to content

Commit

Permalink
Update mysql-queries.md
Browse files Browse the repository at this point in the history
added new SQL scripts
  • Loading branch information
iamtheted authored Jun 9, 2024
1 parent d3484fc commit 76bab28
Showing 1 changed file with 28 additions and 2 deletions.
30 changes: 28 additions & 2 deletions marzban/fa/examples/mysql-queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -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` که پایین باکس قرار دارد را می‌زنیم.

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 76bab28

Please sign in to comment.