mysql - SQL 追加到 VARCHAR 列失败并出现 Truncate DOUBLE 错误
问题描述
我有一个有列的表
tick varchar(10), category varchar(100)
他们有以下2条记录(示例)
EFG,0
XYZ,#
(EFG 和 XYZ) 是刻度列的值,(0 和 #) 分别是类别列的值。
我的需要是将字符串 ',Cool,' (包括逗号)附加到现有的类别值中,这样上面的两条记录就变成了
"EFG","0,Cool,"
"XYZ","#,Cool,"
所以我正在运行以下 SQL 语句:
update tablen set category = category + ',Cool,' where tick='EFG';
update tablen set category = category + ',Cool,' where tick='XYZ';
但是,对于第一条 SQL 语句,它根本没有改变任何值。第二,类别值从#更新为“0”
在这两种情况下,我都会收到警告:
Warning: #1292 Truncated incorrect DOUBLE value: '#' (and for '0')
Warning: #1292 Truncated incorrect DOUBLE value: ',Cool,'
无法理解为什么 VARCHAR 列更新会引发 DOUBLE 值错误。
有人可以解释一下我在这里做错了什么吗?是否需要任何类型转换?
非常感谢
解决方案
在 mysql 中, concat 不是+
concat()
update tablen set category = concat(category , ',Cool,') where tick='EFG';
update tablen set category = concat(category , ',Cool,') where tick='XYZ';
加号诱导 mysql 认为值是数字 .. 但你有 varchar ..
推荐阅读
- sass - 将媒体查询传递给 SASS 混合时出错:错误:未定义的混合
- smalltalk - smalltalk 中的二分查找
- php - 我在应用程序级别的 laravel 根目录中创建了文件夹,但无法在该文件夹文件中获取 laravel 会话
- sql - 如何过滤所有 FK 巧合
- java - 同一张表中的子查询问题
- java - 在模块 IntelliJ IDEA 中指定默认工作目录
- javascript - Angular 12 + Chartjs 3.3.2 TypeError:无法读取属性“左”
- react-native - 在连接上反应本机应用程序性能(mapStateToProps,mapDispatchToProps)
- android - 无法从新的 Android Studio 4.2.1 中找到 Debug SHA 1 Key
- python - Mgrid的3D旋转