SA-MP Forums Archive
MySQL (F.A.Q.) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: MySQL (F.A.Q.) (/showthread.php?tid=489467)

Pages: 1 2 3 4 5 6 7 8 9


Re: MySQL (F.A.Q.) - Stepashka - 24.03.2019

Там есть колбэк который вызывается при ошибке.


Re: MySQL (F.A.Q.) - Eims - 25.03.2019

Возможно ли через
Код:
SHOW COLUMNS
вывести только те строки, у которых явно изменено значение столбца 'Default'?

Код:
SHOW COLUMNS FROM tablename WHERE 'Default' IS NOT NULL
всё равно выводит все столбцы


Re: MySQL (F.A.Q.) - Stepashka - 25.03.2019

У вас в условии бред написан, вы проверяете строку 'Default' на то что она не null, такое условие всегда верно.


Re: MySQL (F.A.Q.) - Eims - 25.03.2019

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
У вас в условии бред написан, вы проверяете строку 'Default' на то что она не null, такое условие всегда верно.
Лол... А я ещё сижу и недоумеваю почему вполне рабочий запрос вдруг работает так странно
Спасибо.


Re: MySQL (F.A.Q.) - x_O - 21.04.2019

Помогите сформировать запрос. Нужно вывести сумму значений `credit` из таблицы `table_bank`, у которых `playerid` = игроки из таблицы `table_accounts`, у которых `money` > 0.

С одним игроком работает, а с двумя уже нет.

PHP Code:
SELECT SUM(`credit`) from `table_bankWHERE `status` != AND `playerid` = (SELECT ID FROM  `table_accountsWHERE `money` > 0
PHP Code:
#1242 - Подзапрос возвращает более одной записи 



Re: MySQL (F.A.Q.) - Stepashka - 21.04.2019

Функция SUM должна использоваться только совместно с функцией GROUP BY.
Code:
SELECT SUM(credit) as total_credit, playerid
FROM table_bank
WHERE status != 0 AND playerid IN (SELECT ID FROM table_accounts WHERE money > 0)
GROUP BY playerid



Re: MySQL (F.A.Q.) - x_O - 21.04.2019

Quote:
Originally Posted by Stepashka
View Post
Функция SUM должна использоваться только совместно с функцией GROUP BY.
Code:
SELECT SUM(credit) as total_credit, playerid
FROM table_bank
WHERE status != 0 AND playerid IN (SELECT ID FROM table_accounts WHERE money > 0)
GROUP BY playerid
С GROUP BY выводит просто все строки, не суммируя, а без - так, как мне и надо. Спасибо.


Re: MySQL (F.A.Q.) - Johhnyllll - 30.04.2019

Как проверить скорость выполнения MySQL запросов?
Сейчас я делаю так:
PHP Code:
public OnRconCommand(cmd[])
{
    if(!
strcmp(cmd"hello"true))
    {
        
SendClientMessageToAll(0xFFFFFFAA"Hello World!");
        print(
"You said hello to the world."); // This will appear to the player who typed the rcon command in the chat in white
        
return 1;
    } else if (!
strcmp(cmd"myspeed"true)) {
        new 
query[128];

        for(new 
0100a++) {
            
format(querysizeof(query), "SELECT %i+1 as result"a);
            
mysql_tquery(g_MySQL_DBquery"CheckMySQLSpeed""i"gettime());
        }
    }
    return 
0;
}
forward CheckMySQLSpeed(date);
public 
CheckMySQLSpeed(date)
{
    
printf("Time MySQL --------> [Time now] %i - [Time of query] %i = %i ms"gettime(), dategettime() - date);
    return 
1;



Есть ещё какие то варианты?


Re: MySQL (F.A.Q.) - eakwarp - 30.04.2019

Делать не один запрос, а например тысячу.


Re: MySQL (F.A.Q.) - Johhnyllll - 30.04.2019

Quote:
Originally Posted by eakwarp
View Post
Делать не один запрос, а например тысячу.
Пробовал, крашит консоль


Re: MySQL (F.A.Q.) - Stepashka - 30.04.2019

  1. Запрос слишком простой, в принципе всё верно выдаёт.
  2. Не передавать время в качестве аргументов, а использовать глобальную переменную.
  3. Удалить нафиг весь этот код, включить профилирование в самой ДБ и мониторить запросы через мониторинг.



Re: MySQL (F.A.Q.) - Johhnyllll - 30.04.2019

Quote:
Originally Posted by Stepashka
View Post
  1. Запрос слишком простой, в принципе всё верно выдаёт.
  2. Не передавать время в качестве аргументов, а использовать глобальную переменную.
  3. Удалить нафиг весь этот код, включить профилирование в самой ДБ и мониторить запросы через мониторинг.
>Удалить нафиг весь этот код, включить профилирование в самой ДБ и мониторить запросы через мониторинг.
Как можно это сделать?


Re: MySQL (F.A.Q.) - Stepashka - 30.04.2019

Quote:
Originally Posted by Johhnyllll
View Post
>Удалить нафиг весь этот код, включить профилирование в самой ДБ и мониторить запросы через мониторинг.
Как можно это сделать?
Тебя в гугле забанили? Ищи по словам mysql profiler...


Re: MySQL (F.A.Q.) - bgAndroid - 06.08.2019

Как лучше всего сохранять данный код

PHP Code:
mysql_format(bdquerysizeof query,"UPDATE players SET test='%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i' WHERE id='%i' LIMIT 1",
test[0],test[1],test[2],test[3],test[4],test[5],test[6],test[7],test[8],test[9],test[10],test[11],test[12],test[13], 1); 



Re: MySQL (F.A.Q.) - Stepashka - 06.08.2019

Quote:
Originally Posted by bgAndroid
View Post
Как лучше всего сохранять данный код

PHP Code:
mysql_format(bdquerysizeof query,"UPDATE players SET test='%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i,%i' WHERE id='%i' LIMIT 1",
test[0],test[1],test[2],test[3],test[4],test[5],test[6],test[7],test[8],test[9],test[10],test[11],test[12],test[13], 1); 
Это уже не раз обсуждалось, каждое значение в отдельной ячейке.


Re: MySQL (F.A.Q.) - cm666 - 06.08.2019

Quote:
Originally Posted by Stepashka
View Post
Это уже не раз обсуждалось, каждое значение в отдельной ячейке.
Чем это лучше ?


Re: MySQL (F.A.Q.) - Stepashka - 06.08.2019

Quote:
Originally Posted by cm666
View Post
Чем это лучше ?
Начинаем с этого: Нормальная форма
И продолжаем тут


Re: MySQL (F.A.Q.) - gensek4 - 28.08.2019

Есть 3 таблицы

Таблица account
- id
- name
- geton_date

Таблица admin
- admin_id
- level
- vigs

Таблица online
- account_id
- date
- online_sec
- afk_sec

Нужно в мониторинге вывести ник админа (account.name), его уровень (admin.level), его выговоры (admin.vigs), последний вход (account.geton_date) и его онлайн в минутах за последний день (online.online_sec).

Никак неполучается составить такой сложный запрос


Re: MySQL (F.A.Q.) - Stepashka - 28.08.2019

Quote:
Originally Posted by gensek4
View Post
Есть 3 таблицы

Таблица account
- id
- name
- geton_date

Таблица admin
- admin_id
- level
- vigs

Таблица online
- account_id
- date
- online_sec
- afk_sec

Нужно в мониторинге вывести ник админа (account.name), его уровень (admin.level), его выговоры (admin.vigs), последний вход (account.geton_date) и его онлайн в минутах за последний день (online.online_sec).

Никак неполучается составить такой сложный запрос
Зачем вам один сложный, сделайте маленькими подзапросами, это будет быстрей.


Re: MySQL (F.A.Q.) - gensek4 - 29.08.2019

Quote:
Originally Posted by Stepashka
View Post
Зачем вам один сложный, сделайте маленькими подзапросами, это будет быстрей.
А можете показать пример, как вы это предоставляете?