[MySQl] голосование в реальном времени, ретйинги

rtyug
На сайте с 13.05.2009
Offline
263
669

как сделать голосование в реальном времени?

я создал таблицу и туда записывается тот кто голосовал

id | id_user | id_co | ip | time

id_co - это элемент за который проголосовали за какое-то время

1) как теперь отсортировать по убывания, сделать ретйинг за какое-то время?

2) есть какой-то id_co как узнать его позицию в данном ретйинге?

=============================

второй пункт раньше делал так:

(только там было не в рейльном времени, а просто прибавлялись записывались голоса)


id | name | pole|
------------------|
1 a 20
2 b 30 |
3 c 10
----------------- |


SELECT count(*)+1 FROM `table` AS t1
LEFT JOIN `table` AS t2
ON t1.id=$id AND t1.pole < t2.pole
where t2.id IS NOT NULL


select tmp.position
from (select row_number() over(order by pole desc) as position, id from rating) as tmp
where tmp.id = 2


select count(*) +1 position from table where pole > (select pole from table where id=2)
Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)
rtyug
На сайте с 13.05.2009
Offline
263
#1

1

SELECT rownum FROM (SELECT @rownum:=@rownum+1 rownum, id_co FROM (SELECT @rownum:=0) r, 

(SELECT count(*) cnt, id_co FROM tablename GROUP BY id_co ORDER BY cnt DESC) t1) t2 WHERE t2.id_co=id_того,что нужно

2

 SELECT count(*) cnt, id_co FROM tablename WHERE  time BETWEEN ... AND .... GROUP BY id_co ORDER BY cnt DESC 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий