mysql update两个字段_关于Mysql update修改多个字段and的语法问题详析

在MySQL里面update一条记录,语法都正确的,但记录并没有被更新...

问题语句

79638f22ef8b65af4178c31bbcaac44e.png

执行之前的记录是这样的:

947b03d5385713ae9a6fe1aed296f324.png

执行之后的记录是这样的:

5e2fbde309faf2e9c215457f67079a2a.png

可以看到,实际上是有效果的:

8df061b48f8a38fed4c0ff14c56720ad.png

why?

看起来,语法是完全没有问题,MySQL官方文档的update语法:

4faf7e8711424737990337a940221b7a.png

看到assignment_list的格式是以逗号分隔的col_name=value列表,一下子豁然开朗,开发同学想要的多字段更新语句应该这样写:

f77df46e96c4a3e4815faa899d98b2b2.png

小结:在一条UPDATE语句中,如果要更新多个字段,字段间不能使用“AND”,而应该用逗号分隔。

原理:为什么使用“AND”分隔的时候,会出现owner_code=0的奇怪结果? 多次尝试之后发现:

114068bfc1c404727701998e51a82bf6.png

39152158159e8170c44295f74fe1b860.png

而("43212" and owner_name="李四")是一个逻辑表达式,而这里不难知道owner_name并不是‘李四"。因此,这个逻辑表达式的结果为false,false在MySQL中等价于0!

到此这篇关于mysql update修改多个字段and的语法问题的文章就介绍到这了,更多相关mysql update修改字段and语法内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

原文链接:https://www.cnblogs.com/alomsc/p/10967571.html

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要修改多个字段类型,可以使用 ALTER TABLE 语句,其中包含多个 ALTER COLUMN 子句。例如,以下语句将修改表名为 table_name 的三个字段的数据类型: ``` ALTER TABLE table_name ALTER COLUMN column1_name new_data_type, ALTER COLUMN column2_name new_data_type, ALTER COLUMN column3_name new_data_type; ``` 其中,column1_name、column2_name 和 column3_name 是要修改的三个字段的名称,而 new_data_type 是它们新的数据类型。请注意,如果表中存在数据,则必须确保修改后的数据类型与现有数据兼容,否则可能会导致数据丢失或错误。 ### 回答2: 要修改多个字段类型的话,可以使用ALTER TABLE语句来实现。下面是一个示例: ALTER TABLE 表名 MODIFY (字段名1 新类型1, 字段名2 新类型2, 字段名3 新类型3); 其中,表名是要修改的表的名称,字段名1、字段名2、字段名3是要修改字段的名称,新类型1、新类型2、新类型3分别是要修改为的新字段类型。 例如,假设有一个名为“students”的表,其中包含“name”(字符型字段)、“age”(整数型字段)、“score”(小数型字段)。我们想要将“age”字段修改为字符型,将“score”字段修改为整数型,可以使用以下命令: ALTER TABLE students MODIFY (age VARCHAR2(20), score NUMBER(5)); 这样就能完成对多个字段类型的修改。 需要注意的是,这个修改操作可能会涉及到数据转换和丢失,因此在执行修改前最好先备份数据,并确保修改后的字段类型适用于原有数据。另外,修改字段类型可能会造成一些约束、索引、触发器等的失效,所以在修改前也需要考虑相关的影响和后续处理。 总之,通过ALTER TABLE语句可以实现对多个字段类型的修改,但在实际操作中应谨慎处理,以免导致数据不一致或其他问题的发生。 ### 回答3: 要修改Oracle数据库中多个字段的类型,可以按以下步骤进行: 1. 首先,使用ALTER TABLE语句打开要修改的表。例如,要修改名为"table_name"的表,可以使用以下语句: ``` ALTER TABLE table_name ``` 2. 在ALTER TABLE语句后面,使用MODIFY子句来指定要修改字段及其新类型。例如,如果要将字段"field1"的类型从VARCHAR2修改为NUMBER,则可以使用以下语句: ``` ALTER TABLE table_name MODIFY field1 NUMBER ``` 3. 如果需要修改多个字段的类型,可以在同一条ALTER TABLE语句中使用多个MODIFY子句。例如,要将字段"field2"的类型从NUMBER修改为DATE,可以在上述语句后添加另一条MODIFY子句: ``` ALTER TABLE table_name MODIFY field2 DATE ``` 4. 重复步骤3,直到所有需要修改字段都在ALTER TABLE语句中有对应的MODIFY子句。 5. 最后,使用分号(;)结束ALTER TABLE语句,并执行该语句以应用修改。例如,可以使用以下语句来执行修改: ``` COMMIT; ``` 这样,就可以成功地修改Oracle数据库中多个字段的类型了。注意,在进行任何数据库修改之前,一定要备份数据库以防止意外情况发生。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值