'+'接合文字列による小さな事故

1380 ワード

一、つづり文字列
需要:account_コード元データに加えてその前に「HSJS」の表示を付けて…
1)誤操作一:
mysql> update  tbpayment_settlement  set  account_code = ('HSJS'+ account_code) where  id = 616783;
1292 - Truncated incorrect DOUBLE value: 'HSJS'
mysql> 

2)誤操作二:
mysql> update  tbpayment_settlement  set  account_code = ('1001'+ account_code) where  id = 616783;
1292 - Truncated incorrect DOUBLE value: '201908'
mysql> 

補足:
mysql> select  account_code from  tbpayment_settlement  where id = 616783;
+--------------+
| account_code |
+--------------+
| 201908       |
+--------------+
1 row in set

mysql> 

解答:account_codeはvarcharタイプで、文字列を結合するために「+」を使用することはできません.「+」は数値タイプの加算に使用されます.文字列はconcat(str 1,str 2,...)を使用します.で行ないます.
3)正解
mysql> update  tbpayment_settlement  set  account_code = concat('HSJS',account_code) where  id = 616783;
Query OK, 1 row affected
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select  account_code from  tbpayment_settlement  where id = 616783;
+----------------+
| account_code   |
+----------------+
| HSJS201908     |
+----------------+
1 row in set

mysql>