合并两个数字串

时间:2013-05-15 17:43:34

标签: php sql mysqli

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;

_____________________________________
|                 |                 |
|      EANS       |     COUNTS      |
+-----------------+-----------------+
|                 |                 |
|  8433611364094  |        1        |
+-----------------+-----------------+

出于一些奇怪的原因'8433611369655;'不合并字符串,但添加一个数字,所以我得到的东西是这样的:1.6867223e + 13 ...
我需要得到一个数组,所以这个:8433611369655; 8433611364094在EANS和1; 1在COUNTS
我可以使用php,但我很乐意只使用SLQ

2 个答案:

答案 0 :(得分:2)

您正在使用MySQL,因此您希望使用concat()而非+进行字符串连接。

此外,您应该从不将值转换为char()而不需要长度。但是,在这种情况下,我认为varchar()将是更合适的类型。

但是,我会建议这个查询:

UPDATE `tbl_objednavka`
    SET `TOTAL` = '6300',
       `EANS` = concat('8433611369655;', `EANS`),
       `COUNTS` = concat('1;', `COUNTS`)
    WHERE `ID_OBJEDNAVKA`=2;

你似乎根本不需要演员阵容。 EANSCOUNTS的类型应该是开头的字符,因为您要为它们分配字符值。

如果它们是数字,那么您需要更改表格,以便它们可以保存您想要的值。在实践中,我建议在这种情况下添加新列。或者,使用视图创建新列。

答案 1 :(得分:1)

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()函数。