关于Mysql单表根据条件随机抽取N条数据的sql写法
业务要求
现在有一个题库,大概几百条数据,表格字段如下:
要求根据考题范围(code_item/code_subItem)来随机抽取50道题目,其中40道单选题,10道判断题。
其他业务逻辑这里就不阐述了。只说sql语句这里有2个要求。
1.根据code_item 或者 code_subItem 随机抽取一条单选题或者判断题。
2.根据code_item 或者 code_subItem 随机抽取n条不重复的单选题或者判断题。
sql
相关资料连接:1.mysql生成不重复随机数(unique number generation)
2.mysql高效率随机获取n条数据写法
查找相关资料后,发现需要用到mysql 自带的rand()函数,但是资料里给出的答复都是大数据情况下,直接用order by rand()会造成全表查询非常影响查询效率。
参考资料生成符合自身表格查询的sql如下:
随机抽取单条数据示例:直接用函数