MySQL (F.A.Q.)

Quote:
Originally Posted by gensek4
View Post
А можете показать пример, как вы это предоставляете?
Если дату хранишь в unix формате то весь запрос выглядит так:
Code:
SELECT
	ac.name as name,
	ad.level as level,
	ad.vigs as vigs,
	FROM_UNIXTIME(ac.geton_date, '%m.%d.%Y %H:%i') as geton_date,
	TRUNCATE((
		SELECT SUM(o.online_sec)
		FROM online o
		WHERE
			o.account_id = ac.id
			AND o.date > UNIX_TIMESTAMP(CURDATE())
		GROUP BY o.account_id
	), 0) as online_sec
FROM admin ad
LEFT JOIN account ac 
	ON ac.id = ad.admin_id
ORDER BY
	ad.level as level DESC,
	ac.name as name
Reply

Quote:
Originally Posted by Stepashka
View Post
Если дату хранишь в unix формате то весь запрос выглядит так:
Потребовалось время, что бы понять, что вместо TRUNCATE предполагалось IFNULL)

Спасибо больше, довольно сложно получилось, но зато смог разобраться.
А если допустим необходимо вывести топ из 10 игроков по онлайну за все время?

Все также есть
таблица account
- id
- name
и таблица online
- account_id
- online_sec
- afk_sec
Reply

Quote:
Originally Posted by gensek4
View Post
Потребовалось время, что бы понять, что вместо TRUNCATE предполагалось IFNULL)
Эмм, нет, это разные функции и делают они разные вещи. В данном случае в TRUNCATE можно дополнить IFNULL.
Reply

Quote:
Originally Posted by Stepashka
View Post
Эмм, нет, это разные функции и делают они разные вещи. В данном случае в TRUNCATE можно дополнить IFNULL.
А что же делает эта функция? В документации к MySQL сказано что она логически схожа с DELETE.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)