MySQL select之后再update

时间:2023-01-31 14:24:52

1、先查询页面 而后再根据查询的结果来更改数据库,可以使用SELECT …… FOR UPDATE 来实现,具体的代码如下

SELECT *
FROM chat  //查询的表
WHERE senderid = 2 AND receiverid = 14 //查询的条件
FOR UPDATE;  //分号不能少,否则在MySQL中运行会报错
UPDATE chat SET ready = 1  //更改的内容
WHERE senderid = 2 AND receiverid = 14 //update的条件

 

2、在MySQL中运行没有报错,但是在mybatis中运行却报错,并显示错误:Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

按照常规流程先看看是否有不存在的字段存在,或者是实体少写了什么,然后再看看SQL语句中是否与mybatis中的一些名字发生了冲突,但是这些均没有问题,而且在MySQL中运行正确就代表SQL语句也没错,后面看见那个分号总是有些碍眼,因为在mybatis中从来没有看见过符号,后面专门查询了一下果然是分号导致的错误,mybatis中不允许有符号的存在,后面经过查询才发现在配置文件中(我这里是application.properties文件)数据库链接加上添加allowMultiQueries=true,也即是:

原来是:

jdbc.url = jdbc:mysql://122.152.251.93:3306/zhyy?useUnicode=true&characterEncoding=utf8&useSSL=false

现在在后面加上allowMultiQueries=true:

jdbc.url = jdbc:mysql://122.152.251.93:3306/zhyy?useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true

 现在运行,果然就没错了,这个问题比较少见,所以得记下来