我们经常想在一个数据表中随机地选取出数据来,比如随机生成考试试卷等。
利用 SQL Server 的 NewID() 方法就可以很轻松地达到这个目的。
NewID() 方法返回一个 GUID,如:EE95A489-B721-4E8A-8171-3CA8CB6AD9E4
在 select 表的时候,再增加一列为 NewID() 就可以了。
SQL 语句:select *, NewID() from table
这样每条记录后就会有一个随机的 GUID 值,我们再按这个 GUID 排一下序就可以达到乱序的效果。
SQL 语句:select *, NewID() as random from table order by random
我们要想随机取出 10 条数据,只要加上 TOP 10 就行了:
SQL 语句:select top 10 *, NewID() as random from table order by random
筛选唯一记录
SELECT * FROM tablename ORDER BY NEWID()
这个方法只适用于 SQL Server。
原文
一下为自己创作
比如我们插入了一堆数据,然后我们想要获得随机4条信息:
select top 4 *,NEWID() as random from td_music order by random
然后我们可以将信息传递给前端,做一个不断刷新的功能:、
window.setInterval(function () {
//每5秒搜索一次
CheckLove();
}, 5000);
这个时候我们需要使用ajax功能,来向后台发送请求,得到新的数据:
function CheckLove() {
//调用后台方法
var pd = { "t": "GetLove" };
$.ajax({
type: "post",
url: "tools/Handler.ashx",
data: pd,
dataType: "json",
success: function (data) {
if (data.status != "-1") {
//滞空div
$('#youlove').empty();
//格式化后台传递过来的数据
var dataobj = data.msg;
//循环数据
$.each(dataobj, function (i, item) {
//设置html文本
var html = '<div style="width:160px;height:200px;float:left;margin-left:52px;" "lisen(\'' + item.musicPath + '\')">' +
' <img src="' + item.imgs + '" style="width:160px;height:160px; cursor:pointer;" />' +
' <div style="text-align:center;">' + item.musicName + '</div>' +
' <div style="text-align:center;font-size:8px;">' + item.singerName + '</div>' +
'</div>';
//向div中添加html
$('#youlove').append(html);
});
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
}