我有一个包含varchar(128)字段的表,名为identifier。它应该得到一个3个字母标识符,后面跟着一个索引编号:
ABC-1234在过去的某个时候,有一个bug,大约5,000条记录被输入为:
ABC-12345我们的数字没有那么高,所以这些值被填充为零(0)。
我编写了一个脚本,以确保我的能够在这个MySQL数据库中正确工作,但我震惊地看到,MySQL将我的值相加在一起:
SELECT
identifier,
SUBSTR(cast(identifier as char),1,4) as 'p',
SUBSTR(cast(identifier as char),6) as 'q',
SUBSTR(cast(identifier as char),1,4)+SUBSTR(cast(identifier as char),6) as 'p+q'
FROM drawing_table where length(identifier)=9
order by identifier desc;下面是输出的片段:
identifier,p,q,p+q
STO-00021,STO-,0021,21
STO-00020,STO-,0020,20
STO-00019,STO-,0019,19
STO-00018,STO-,0018,18
STO-00017,STO-,0017,17
STO-00016,STO-,0016,16
STO-00015,STO-,0015,15
STO-00014,STO-,0014,14
STO-00013,STO-,0013,13
STO-00012,STO-,0012,12
STO-00011,STO-,0011,11
STO-00010,STO-,0010,10
STO-00009,STO-,0009,9
STO-00008,STO-,0008,8
STO-00007,STO-,0007,7
STO-00006,STO-,0006,6
STO-00005,STO-,0005,5
STO-00004,STO-,0004,4
STO-00003,STO-,0003,3
STO-00002,STO-,0002,2
STO-00001,STO-,0001,1
STA-00166,STA-,0166,166
STA-00165,STA-,0165,165
STA-00164,STA-,0164,164
STA-00163,STA-,0163,163
STA-00162,STA-,0162,162
STA-00161,STA-,0161,161
STA-00160,STA-,0160,160
STA-00159,STA-,0159,159
STA-00158,STA-,0158,158
STA-00157,STA-,0157,157
STA-00156,STA-,0156,156
STA-00155,STA-,0155,155
STA-00154,STA-,0154,154
STA-00153,STA-,0153,153
STA-00152,STA-,0152,152
STA-00151,STA-,0151,151
STA-00150,STA-,0150,150
STA-00149,STA-,0149,149
STA-00148,STA-,0148,148
STA-00147,STA-,0147,147
STA-00146,STA-,0146,146
STA-00145,STA-,0145,145
STA-00144,STA-,0144,144
STA-00143,STA-,0143,143
STA-00142,STA-,0142,142
STA-00141,STA-,0141,141
STA-00140,STA-,0140,140
STA-00139,STA-,0139,139
STA-00138,STA-,0138,138

为什么MySQL试图添加我的字符串值?
发布于 2014-03-18 15:55:59
使用CONCAT(SUBSTR(cast(identifier as char),1,4), SUBSTR(cast(identifier as char),6))
发布于 2014-03-18 15:56:47
如果你想连接两个字符串,你应该使用连接函数。
例如,:
SELECT CONCAT('WAS-','0020')结果
原-0020
发布于 2014-03-18 15:56:08
您必须使用CONCAT函数而不是+操作符。请参阅:Mysql手册
在您的示例中,这将类似于: CONCAT( SUBSTR(cast(标识符为char),1,4),SUBSTR(cast(标识符为char),6)为“p+q”
https://stackoverflow.com/questions/22484395
复制相似问题