MySQL UPDATE语句SET多字段,逗号连接和AND连接的区别

参考链接:https://blog.csdn.net/qq_28382071/article/details/79759559

MySQL正确的UPDATE语法如下:

测试表数据和字段格式

执行以下UPDATE语句,会有什么结果?

第三句UPDATE语句报错,其他成功执行

执行结果:

说明:

1和4是正确UPDATE语句,2、3、5、6是使用AND连接的UPDATE。

MySQL使用AND连接的语句时,相当于执行了下面的SQL:

UPDATE hutz SET age = (1 AND address = ‘6‘) WHERE id = ‘6‘;

所以age等于括号里面的Boolean值,0表示false, 1表示true。

疑问:

至于报错的第三句SQL,(2、3的区别)跟字段类型有关,SET的值是字符类型的数值时,会报精度错误。(哪位大佬知道,不吝赐教!)

原文地址:https://www.cnblogs.com/hutz/p/11416984.html

时间: 2024-10-14 14:26:09

MySQL UPDATE语句SET多字段,逗号连接和AND连接的区别的相关文章

mysql update语句,修改字段,,或者是批量修改字段

更新一个字段,在它的后面加一个字符串,不查询数据库得到这个字段值 怎么添加?? 例如: 我的test表,有个user字段,我现在想在它后面加了另一个用户的名字 我在mysql数据库这样写 UPDATE test SET user= user+ ',phpchina' WHERE id= '2'; 这样是不对的,mysql数据库把它当成数字相加了,user字段值变成0了. 应该: UPDATE test SET user= CONCAT(user,',phpchina') WHERE id= '2

Mysql update语句赋值嵌套与在表列中数据后面增加数据

1.Mysql update语句赋值嵌套select  点击(此处)折叠或打开 update a set col=(select col from a where id='5') where id>5 and id<10; 报错了 ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause 经过研究 发现是 mysql 定义update语句不能同时对同一张进行set 赋值操作,也就是说 upd

mysql update语句与limit的结合使用

有时候有需要批量更新数据表中从多少行到多少行的某个字段的值 mysql的update语句只支持更新前多少行,不支持从某行到另一行,比如 UPDATE tb_name SET column_name='test' ORDER BY id ASC LIMIT 30; 更新前30行的某个字段内容,没什么问题. UPDATE tb_name SET column_name='test' ORDER BY id ASC LIMIT 20,10; 更新从20行到30行的某个字段的内容,这样会报错. 解决办法

MySQL update 语句与标准SQL不同的地方

[SQL标准中有一个叫同时执行的概念] 同时执行指的是在同一个子句中的各个部分的执行时机是不区分先后的,如下面的SQL语句 select abs(-1),abs(2); +---------+--------+ | abs(-1) | abs(2) | +---------+--------+ | 1 | 2 | +---------+--------+ 1 row in set (0.01 sec) 按SQL标准的说法 abs(-1) 与 abs(2) 这两个函数是"同时执行"的!

mysql update语句的一个知识点说明

当执行update语句时,如果受影响的行数是0,返回的也是true. $conn = new mysqli(); $sql = "update ..."; $query = $conn->query($sql); var_dump($query); //此时,如果update   sql语句执行成功,但是影响行数为0,$query是true. 影响行数: $conn->affected_rows; // 如果执行sql语句出错,返回-1,

mysql命令语句来去除掉字段中空格字符的方法

mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数. (1)mysql replace 函数 语法:replace(object,search,replace) 意思:把object中出现search的全部替换为replace 案例: SQL Code复制内容到剪贴板 update `news` set `content`=replace(`content

MySQL UPDATE 查询

MySQL UPDATE 查询 如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作.. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] 你可以同时更新一个或多个字段. 你可以在 WHERE 子句中指定任何条件. 你可以在一个单独表中同时更新数据. 当你需要更新数据表中指定行

雷林鹏分享:MySQL UPDATE 查询

如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作.. 语法 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法: UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause] 你可以同时更新一个或多个字段. 你可以在 WHERE 子句中指定任何条件. 你可以在一个单独表中同时更新数据. 当你需要更新数据表中指定行的数据时 WHERE 子句是非常

mysql执行update语句时报错:Data truncation: Truncated incorrect DOUBLE value: &#39;null&#39;

出现这个问题的原因网上有说是update的参数连接符要用,而不是and,但是我遇到的不是这个. 我出现问题的原因是,在update语句的where中varchar类型的字段我直接用了数字类型 update address set province = '北京' where userId = 250; userId是varchar类型的,报错Data truncation: Truncated incorrect DOUBLE value: 'null' 改成这样就可以了 update addre