mysql 同一个字段作为条件更新

本文介绍了一种解决MySQL中同一字段作为查询条件与更新目标时出现的“Truncated incorrect DOUBLE value”错误的方法。通过使用子查询创建临时表进行更新操作,避免了直接在同一字段上进行查询与更新导致的问题。
部署运行你感兴趣的模型镜像

              mysql 更新一个字段的值且这个字段作为条件是,会报  Truncated incorrect DOUBLE value: '*********' 错误

             例如:UPDATE admin_user SET active_time='2016-11-23'  WHERE admin_id !=1 AND active_time=0;

             active_time 作为条件查询且修改它,就会报这个错误

             解决办法:用临时表修改

             例:UPDATE admin_user SET active_time = ( SELECT active_time FROM (SELECT * FROM admin_user) AS a WHERE a.id= 2 ) WHERE id = 1;

             例:UPDATE admin_user SET type=19 WHERE id IN(SELECT id FROM (SELECT * FROM admin_user) AS a WHERE type IN(1,6));

            这样可以顺利解决同个字段更新的问题

            ps:暂时只知道这样可以解决,其他方法不知道,请指教。。

          


您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

MySQL 中,可通过以下方法依据 JSON 字段条件进行查询: - **使用 `字段->'$.json属性'` 作为查询条件**:在有日志表且 `data` 字段保存不同对象的 JSON 数据时,可使用 `字段->'$.json属性'` 作为查询条件查询数据。例如若要查找 `data` 字段中 `json属性` 的值满足特定条件的记录,可使用类似如下的 SQL 语句: ```sql SELECT * FROM 日志表 WHERE data->'$.json属性' = '特定值'; ``` - **使用 `json_extract` 函数查询**:`json_extract` 函数可用于从 JSON 字段中提取指定属性的值。语法为 `json_extract(字段,"$.json属性")`。如查询 `approver` 字段里面数组中有 `13` 的数据,可使用如下 SQL 语句: ```sql SELECT * FROM `evaluation_foundation` WHERE json_extract(approver, '$.b') = "13"; ``` - **使用 `JSON_CONTAINS` 函数查询**:该函数可用于检查 JSON 字段中是否包含特定的键值对或 JSON 对象。第一个参数是要查询的 JSON 字段,第二个参数是要查找的 JSON 数据,必须是有效的 JSON 格式字符串。如要返回所有 `json_data` 字段包含 `{id: 1}` 键值对的记录,可使用如下 SQL 语句: ```sql SELECT * FROM 表名 WHERE JSON_CONTAINS(json_data, JSON_OBJECT('id', 1)); ``` 若要根据 JSON 数组查询,可使用 `JSON_CONTAINS(字段,JSON_OBJECT('json属性', "内容"))`,示例如下: ```sql SELECT * FROM 表名 WHERE JSON_CONTAINS(data, JSON_OBJECT('json属性', "内容")); ``` - **使用 `JSON_OVERLAPS` 函数查询**:该函数可用于查询两个 JSON 数组是否有交集。例如查询 `lc_lease_survey` 表中 `free_hold` 字段的 JSON 数组与另一个查询结果的 JSON 数组是否有交集,可使用如下 SQL 语句: ```sql SELECT * FROM lc_lease_survey WHERE JSON_OVERLAPS(free_hold->>'$[*].id' ,(SELECT JSON_ARRAYAGG(id) FROM rle_free_hold rfh WHERE rfh.region_id IN (SELECT id FROM region WHERE code LIKE '2201%'))); ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值