SELECT * FROM tablename ORDER BY RAND() LIMIT 10
2.不要将大量的工作给数据库去做,这样会导致数据库在某一集中并发时间内锁死并阻塞。
建议通过PHP随机生成一下1-X(总行数)之间的数字,然后将这10个随机数字作为查询条件,具体语句如:
SELECT * FROM tablename where ID in (2,8,4,11,12,9,3,1,33)
可能你还要进行重复排除,并且需要在程序中将10个值串联并连接进入SQL语句中。
create table names(id int,name varchar(10))
insert into names values(1,'张三')
insert into names values(2,'李四')
insert into names values(3,'王五')
insert into names values(4,'赵六')
select replace(b,'张三',t2.name) b from
(select ceiling(rand()*5) id,b from a) t1
left join
(select id,name from names) t2
on t1.id=t2.id
我没有测试,可能有些小问题,但思路应该是对的
a表用随机数生成编号列,对应姓名编号
关联2个表,并替换相应字段
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)