MySQL數據庫中,分組取前N個是非常常用的功能之一。而其中,分組取前3個in更是一個很有用的數據處理方法,可以準確展示出數據的排名和分布情況。
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY group_col ORDER BY sort_col ASC) as r FROM table WHERE in_col IN ('a', 'b', 'c') ) tmp WHERE tmp.r<= 3;
這段代碼實現了分組取前3個in的功能。其中,group_col是需要分組的列,sort_col是排序的列,in_col是需要匹配的列,'a', 'b', 'c'是in匹配的值。
需要注意的是,該代碼僅適用于MySQL8.0及以上版本。如果你正在使用低版本的MySQL,可以考慮使用subquery或Join的方式實現分組取前3個in的操作。
下一篇html小游戲原代碼