UPDATE BaseUser SET G_ID = 10 WHERE G_ID =0 AND is_manager = 1
AND ID IN(select top 3 ID from BaseUser order by newid())
我执行这条语句, 为什么不能随即的更新三条数据, 而只是随机更新一条,两条,或者不更新?
UPDATE BaseUser SET G_ID = 10 WHERE ID IN(select top 3 ID from BaseUser where G_ID =0 AND is_manager = 1 order by newid())
恩 对了 谢谢
WHERE G_ID =0 AND is_manager = 1
AND ID IN(select top 3 ID from BaseUser order by newid())
3个and的条件,应该是随机的有几条符合,但是肯定是不大于3条的
对的 谢谢
最主要的原因是你的外层where语句做了限定。
WHERE G_ID =0 AND is_manager = 1
是这个原因。谢谢
使用select top 3 ID from BaseUser order by newid() 如果你的记录总数大于3笔绝对是能取出3笔来
你WHERE G_ID =0 AND is_manager = 1 在这三笔基础上再进行了条件限制,所以出不来哦
一楼的这个方法
UPDATE BaseUser SET G_ID = 10 WHERE ID IN(select top 3 ID from BaseUser where G_ID =0 AND is_manager = 1 order by newid()) 是对的。
恩 的确 谢谢了