mysql获取随机题目、排序

mysql排序问题(对字符串类型数据进行排序)
对普通数字字符串字段排序:select * from qq ORDER BY score*1 DESC,time*1 ASC

一、在mysql操作中我们经常需要对数据进行类型转换。此时我们应该使用的是cast()或convert()。
二、两者的对比
相同点:都是进行数据类型转换,实现的功能基本等同
不同点:两者的语法不同,cast(value as type) 、 convert(value,type)
三、所支持的类型如下:
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED
select CAST(score AS signed) as score from qq ORDER BY score DESC

//参考资料https://www.cnblogs.com/awzf/p/9848458.html

------------------------------------------------------------------------------------------------------------------

排名查询
SELECT team,SUM(score) as zscore,SUM(use_time) as zuse_time from (SELECT * from (SELECT score,use_time,openid,team from v9_zsdt_team ORDER BY score desc,use_time ASC) as tp GROUP BY openid) as qq GROUP BY team ORDER BY zscore DESC,zuse_time ASC,team ASC

随机获取题目
SELECT * FROM (SELECT p.id,p.title,p.thumb,p.shortt,pd.content,p.video,p.videosrc,p.zan from news as p left join news_data as pd on p.id=pd.id WHERE p.catid= 5118 ORDER BY RAND()) as temp group by video ORDER BY video ASC

猜你喜欢

转载自www.cnblogs.com/lingzhu/p/10670737.html