孕妇打嗝mysql投票总排⾏_MySQL存储过程获取记录排名(⼀般⽤于
投票系统)
MySQL存储过程获取记录排名(⼀般⽤于投票系统) 原理 计算当前学校的票数,暂且记作a 计算票数⼤于⾃⼰的学校数⽬,暂且记作b,如果b=0,则⾃⼰票数排名第⼀ 计算票数⼩于⾃⼰的学校数⽬,暂且记作c,如果c=0,则⾃⼰票数排名最后 如果b!=0c!=0,那么b+c就是
MySQL存储过程获取记录排名(⼀般⽤于投票系统)
原理
计算当前学校的票数,暂且记作a
计算票数⼤于⾃⼰的学校数⽬,暂且记作b,如果b=0,则⾃⼰票数排名第⼀
计算票数⼩于⾃⼰的学校数⽬,暂且记作c,如果c=0,则⾃⼰票数排名最后
如果b != 0 && c != 0,那么b+c就是⾃⼰的票数排名
CREATE PROCEDURE `get_rank`(IN `school` INT)大大姐
BEGIN
SET @votes = (SELECT COUNT(tcl_vote.vote_id) AS counts FROM tcl_works LEFT JOIN tcl_vote ON tcl_vote.works_id =
tcl_works.works_id WHERE tcl_works.school_id=school);
SET @gt = (
SELECT
COUNT(*)
FROM
(
SELECT
黑龙江省高考分数线tcl_works.school_id,
如何启用宏功能COUNT(tcl_vote.vote_id) AS votes
FROM
tcl_works
LEFT JOIN tcl_vote ON tcl_vote.works_id = tcl_works.works_id
GROUP BY
tcl_works.school_id
HAVING
votes > @votes
ORDER BY
votes DESC
)
AS xxx
)
;
IF @gt = 0
THEN
SET @rank = 1;
SELECT @rank AS rank;
ELSE
SET @lt = (
SELECT
COUNT(*)
火开头成语FROM
(
冯老师SELECT
tcl_works.school_id,
COUNT(tcl_vote.vote_id) AS votes
FROM
tcl_works
LEFT JOIN tcl_vote ON tcl_vote.works_id = tcl_works.works_id GROUP BY
tcl_works.school_id
HAVING
votes < @votes
ORDER BY
votes DESC
)
AS xxx
);
IF @lt = 0
光端机THEN
SET @rank =(SELECT COUNT(*) FROM tcl_school LIMIT 1); SELECT @rank AS rank;
ELSE
劳动心得体会SET @rank = (@gt+@lt);
SELECT @rank AS rank;
END IF;
END IF;