深圳分销网站设计费用,wordpress批量修改链接,最新军事战况,网站建设概括目录
一、问题描述
二、为何会出现这样的问题#xff1f;
三、正确的方案 一、问题描述
我在修改mysql数据表时#xff0c;看到下面的现象。 我表中原始数据如下#xff1a; 执行了下面的修改#xff0c;显示执行成功。 update user_function_record_entity set open_…目录
一、问题描述
二、为何会出现这样的问题
三、正确的方案 一、问题描述
我在修改mysql数据表时看到下面的现象。 我表中原始数据如下 执行了下面的修改显示执行成功。 update user_function_record_entity set open_id 8 and reason 已修改 and create_time now() where id 2; 再次查询数据如下 从修改后的数据看不是我预期的结果为什么呢 下面就来分析分析。 二、为何会出现这样的问题
首先其根本问题在于 set 后用了 and 。
因为 set 的语法是当修改多个值时是用英文逗号间隔而不是and间隔。 那为什么在执行命令时没有提示错误呢。
因为带了and的命令其真实执行逻辑如下 update user_function_record_entity set open_id (8 and reason 已修改 and create_time now()) where id 2; 因为 (8 and reason 已修改 and create_time now()) 通过逻辑运算是false
所以才会把 open_id 设置为 0 。 三、正确的方案
正确的命令如下 update user_function_record_entity set open_id 8, reason 已修改, create_time now() where id 2; 原始值 修改命令执行后 所以为了避免这样的坑记住正确的命令格式。这个坑一般真的很难发现。 我是程序员娟娟 致力将工作中遇到的问题和解决方案记录下来 分享给更多需要的同行。 如果对你有帮助不妨点个关注吧