Mysql 合并两个数字字符串
MYSQL命令:Mysql 合并两个数字字符串,mysql,sql,Mysql,Sql,MYSQL命令: UPDATE `tbl_objednavka` SET `TOTAL` = '6300', `EANS` = CAST('8433611369655;' AS char)+CAST(`EANS` AS char), `COUNTS` = CAST('1;' AS char)+CAST(`COUNTS` AS char) WHERE `ID_OBJEDNAVKA`=2; _____________________________________ |
UPDATE `tbl_objednavka` SET
`TOTAL` = '6300',
`EANS` = CAST('8433611369655;' AS char)+CAST(`EANS` AS char),
`COUNTS` = CAST('1;' AS char)+CAST(`COUNTS` AS char)
WHERE `ID_OBJEDNAVKA`=2;
_____________________________________
| | |
| EANS | COUNTS |
+-----------------+-----------------+
| | |
| 8433611364094 | 1 |
+-----------------+-----------------+
它是因为某种奇怪的原因“8433611369655;”不要合并字符串,而是将一个数字添加到另一个数字中,因此我得到如下结果:1.6867223e+13…我需要一个数组,所以这个:8433611369655;EANS和1中的8433611364094;1支
我可以使用php实现这一点,但我希望只使用SLQ
UPDATE `tbl_objednavka` SET
`TOTAL` = '6300',
`EANS` = CONCAT('8433611369655;', CAST(`EANS` AS char)),
`COUNTS` = CONCAT('1;', CAST(`COUNTS` AS char))
WHERE `ID_OBJEDNAVKA`=2;
MySQL不使用
+
进行字符串连接,您必须使用CONCAT()
函数。您使用的是MySQL,因此您希望使用CONCAT()
而不是+
进行字符串连接
此外,决不能将值转换为没有长度的char()
。不过,在这种情况下,我认为varchar()
将是更合适的类型
但是,我建议提出以下问题:
UPDATE `tbl_objednavka`
SET `TOTAL` = '6300',
`EANS` = concat('8433611369655;', `EANS`),
`COUNTS` = concat('1;', `COUNTS`)
WHERE `ID_OBJEDNAVKA`=2;
你似乎根本不需要演员。EANS
和COUNTS
的类型应以字符开头,因为您正在为它们分配字符值
如果它们是数字,则需要更改表,以便它们可以保存所需的值。实际上,我建议在这种情况下添加新列。或者,使用视图来创建新列。
+
用于添加数字,请使用CONCAT()
函数来连接字符串。它可以有多个ean,我不希望它们位于另一个单独的表中。。。但是,是的,它会更正确,它将遵循名义形式