2015-01-12 1 views
-1

Есть ли способ получить все данные из таблицы, где число больше чем что-то.Оператор MySQL с параметром «>» или «<»

В моем случае я использую UNIX time в базе данных, чтобы иметь возможность легко сравнивать данные. Прямо сейчас я хотел бы подсчитать каждый логин, который выше текущего времени UNIX минус 24 часа.

Есть ли способ, как я могу это написать? Я думал о чем-то подобном, но не уверен, как написать инструкцию SQL с помощью < или >.

function getDailyOnline() 
{ 
    return $this->db->table('users') 
     ->where('last_login', $post->id); 
} 

Мне нужна команда SQL, не нужно использовать Nette Framework, как в моем «примере».

+0

Где '$ this-> db-> таблица()' и 'где()' взялось? – AbraCadaver

+4

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

+0

это Nette framework, меня это не волнует, я в порядке с базовой командой SQL – Andurit

ответ

4

Вы можете просто попробовать это:

$this->db->table('users')->where('last_login > ', $post->id); 
+0

Не хватает ли '?' В предложение 'where'? – tadman

+0

Это база данных nette. Это позволяет вам не писать?, Он будет добавлять их автоматически. – hrach

+0

Это действительно хороший момент, спасибо за это. как всегда в конце на основе этого и других вопросов я создаю свой окончательный ответ: \t \t 'return $ this-> db-> fetchPairs ('SELECT COUNT (*) last_login FROM users WHERE last_login> UNIX_TIMESTAMP() - (24 * 60 * 60) '), ' – Andurit

2
SELECT COUNT(*) AS cnt 
    FROM users 
WHERE last_login > (UNIX_TIMESTAMP() - (24 * 60 * 60)); 
+0

, пожалуйста, отредактируйте свой ответ и включите некоторое объяснение, почему это решает проблему OP. Кодовые ответы иногда достаточно хороши, но ответы на код + объяснение всегда лучше. – Barranka

+0

@ Барранка Я не вижу ничего, что конкретно требует объяснений; это довольно простой SQL, который напрямую отвечает на вопрос OP. Если у ОП есть какие-то особые проблемы с моим ответом, я был бы рад объяснить или убрать в случае необходимости. – shmosel

+0

Thumb up, ваш ответ был полезен для меня :) – Andurit

2

вы хотите сделать что-то вроде этого:

SELECT COUNT * 
    FROM users 
    WHERE last_login > (UNIX_TIMESTAMP() - (24 * (3600))); 

Это будет выбрать все строки с last_login старше 24 часов (1день).

+1

Thumb up, ваш ответ был полезен для меня :) – Andurit

0

Я просто попытался, и вы можете пойти на это решение:

$this->db->table("users") 
    ->where('last_login > ', $post->id); 

приветствий

Смежные вопросы