你说的中间表是不是临时表例:如何实现随机更新表里的几条数据.思路1:先随机查询几条记录思路2:更新这几条记录.但是你如果直接写updatetable1set.whereidin(selectidfromtable1orderbyrand()limit1)这种情况就会报错.不能再查询时同时对该表进行修改.这个时候就需要将查询语句查出来的表放到临时表.updatetable1setwhereidin(selectf.idfrom(select*fromtable1orderbyrand()limit2)f)。
- 情感问答
- 答案列表
中间表查询:火车时刻表查询[朗读]
你好,sql语句是这样的selecttop10*fromtb_tbwhereidnotin(selectselecttop30idfromtb_tborderorderbyid)orderbyid简单说下原理,内层是查询前30的数据,外层是查询不属于前30的数据中的前10个数据,那就是30-40了。
sql:selectu.*fromuser_roleur,useru,rolerwhereur.user.id=u.user_idandur.role_id=r.role_idandrole_name='role_name';hql:selectu.*fromuser_roleur,roler,useruwhereur.role.role_code=r.role_codeandur.user.user_id=u.user_idandur.role.role_name='xxxxxx';
你可以试着说清楚每个表里面有什么字段,你要按照什么需求查询相应的字段.select*fromtablenamewhere你的条件;如何提出一个好的问题,也是你要搞定的?
selecttop12*from(selecttop24*fromtableorderbyid)orderbyiddesc先正序取前24条,再倒序取其中的前12条,25-36之间在数据改一个地方:selecttop12*from(selecttop36*fromtableorderbyid)orderbyiddesc。