Skip to content

Instantly share code, notes, and snippets.

@heluvaguy
heluvaguy / Mysql:Rank
Created October 7, 2013 15:10
Implement Rank in Mysql
SELECT cm_id,
@rnk:=IF(@preval <=> column, @rnk, @rnk + 1) AS rank,
@preval:=social_profile_score_absolute AS social_profile_score_absolute
FROM table
JOIN (SELECT @rnk := 1, @preval :=0) r
ORDER BY social_profile_score_absolute ASC
@heluvaguy
heluvaguy / Mysql : Dense_rank
Created October 7, 2013 15:09
Implement Dense Rank In Mysql
SELECT id,
@rnk:=IF(@preval <=> score, @rnk, @row + 1) AS dns_rnk,
@row:= @row+1 AS rnk,
@preval:=score as score
FROM table
# be careful for NULL handling.
# if all the values of score column are null, then dns_rank will zero.
# please set proper initial value for @preval based on your data.
JOIN (SELECT @rnk := 0, @preval :=null, @row := 0) r
ORDER BY score DESC
-- SPLIT_STR MySQL Function
-- from http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/
CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),