1:你要随机更新的话。要先查几条随机数据。然后根据查询的数据一个特定字段去更新。但是又不能在查询的时候同时更新。会报错。要先将查询出来的存储到临时表。再进行修改。
下面是我的s_grader 表结构和我的SQL语句。就实现了随机查询两条。然后进行修改。要随机修改几条就把Limit后面的2改成几。亲测可行。
UPDATE s_grader SET Sgrad='999' WHERE Sname in ( SELECT F.Sname FROM (SELECT * FROM s_grader ORDER BY RAND() LIMIT 2) F)
1、首先打开mysql,连接一个数据库,点击上方的【查询】按钮,再点击【新建查询】,如图所示。
2、在查询框中,输入sql语句“EXPLAIN select * from users”,前面加了EXPLAIN,则查询语句在执行时,会记录执行过程效率。
3、在查询框中,输入sql语句“EXPLAIN select * from users”,前面加了EXPLAIN,则查询语句在执行时,会记录执行过程效率。
4、然后看到结果1那一栏,可以看到,查询的表是【users】,查询类型是【SIMPLE】,type是【all】,因为用了“select *”语句。
5、最后一栏显示的是【状态】,即表示一些执行的状态,如接收到的字节数,值是多少;发送的字节数,值是多少等。
我不知道楼主为什么会有这样的问题,在数据库当中每一条数据不应该都是独立的一条吗,有它自己的特征才对。所以当你WHERE sort_code='SAMQLF'的时候很明显的意思就是更新所有匹配的数据。你如果只是更新一条,那么更新的是哪一条?是不是应该有它的特征才对,所以你应该把这个特征加上。如果你就是那么任性的要随机更新匹配的一条,我的方案就是随机查出sort_code='SAMQLF'的一条记录的ID,用ID来更新这条记录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)