例:如何实现随机更新表里的几条数据。
思路1:先随机查询几条记录
思路2:更新这几条记录。
但是你如果直接写 Update table1 SET ....... where ID in (select ID from table1 ORDER BY RAND() limit 1)
这种情况就会报错。不能再查询时同时对该表进行修改。这个时候就需要将查询语句查出来的表放到临时表。
update table1 Set ...... where ID in(SELECT F.ID FROM (SELECT * FROM table1 ORDER BY RAND() LIMIT 2) F)
把tags进行分割,并和id关联起来
结果如图:
t_num_tmp为中间表,内容如下:
id的最大值为 len(tags分割后tag的数量)
通过t_num_tmp中间表把t_tags的一条记录复制为n份,n为tags分割后tag的数量。
再在这n份记录中, 通过对应的循环值, 取到对应的tag
https://www.cnblogs.com/tooy/p/8108602.html
select a.*,c.*,t.status,t.cou from a left join b on a.id=b.aid left join c on b.cid=c.id left join(select a.id,d.status,count(*) cou from a left join d ona.id=d.id group by a.id,d.status) t
on a.id=t.id
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)