MySQL (F.A.Q.)

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

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

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

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

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

Помогите сформировать запрос. Нужно вывести сумму значений `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 - Подзапрос возвращает более одной записи 
Reply

Функция 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
Reply

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 выводит просто все строки, не суммируя, а без - так, как мне и надо. Спасибо.
Reply

Как проверить скорость выполнения 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;



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

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

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

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

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

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

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

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); 
Reply

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); 
Это уже не раз обсуждалось, каждое значение в отдельной ячейке.
Reply

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

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

Есть 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).

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

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).

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

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


Forum Jump:


Users browsing this thread: 4 Guest(s)