2016-01-15 27 views
0

我试图在mysql UPDATE中使用CONCAT
如何在`UPDATE`中使用`CONCAT`

"INSERT INTO table ( 
    objekt_nr, 
    objekt_status) 
VALUES(
    :objekt_nr, 
    'salj,$fakt') 

ON DUPLICATE KEY UPDATE 
    objekt_status = VALUES(CONCAT(objekt_status, 'salj,$fakt'))"; 

$query_params = array(
    ':objekt_nr' => $_POST['objekt_nr']); 

我尝试了好几种:

objekt_status = VALUES(CONCAT(objekt_status, objekt_status))"; 
objekt_status = VALUES(CONCAT(objekt_status, 'addMe'))"; 
objekt_status = VALUES(CONCAT(objekt_status, 'salj,$fakt'))"; 
objekt_status = VALUES((CONCAT(objekt_status, 'salj,$fakt')))"; 

错误代码为: objekt_status = VALUES(CONCAT(objekt_status, 'salj,$fakt'))";
...语法使用近 '(objekt_status, 'salj,fakt,'))'

代码应该如何?

+0

我认为你的代码是不完整的,字符串不会在空中浮动。有什么问题你有错误吗? –

+0

@JuanCarlosOropeza更新! –

+0

'$ fakt'中有什么值。 –

回答

0

其实在我的情况,我需要的“值”每一行,但CONCAT线去除values以及分号。

objekt_created_when = VALUES(objekt_created_when), 
objekt_status = CONCAT(objekt_status, 'salj,$fakt') "; 

如果我确实从所有行中删除了VALUES,那么db中的值就空了!

+0

您使用的是什么框架或语言 –

+0

Bootstrap 3 .... –

2

你有一个分号,应该有一个逗号(在VALUES(objekt_nr);之后),并且它看起来在最后一行$fakt上的最后一行出现撇号。 VALUES只需要为INSERT,手动here

这个查询应该是正确的:

"INSERT INTO table ( 
    objekt_nr, 
    objekt_status) 
VALUES(
    :objekt_nr, 
    'salj,$fakt') 

ON DUPLICATE KEY UPDATE 
    objekt_nr = objekt_nr, 
    objekt_status = CONCAT(objekt_status, 'salj,$fakt')"; 

也请确保您的变量被转义,或使用事先准备好的声明。

+1

对不起分号,只是在这个演示中。但删除值似乎解决了它。我有另一个查询,我不使用CONCAT,然后它的工作..谢谢。 –

+0

实际上,我需要“VALUES”,因为它是'ON DUPLICATE KEY UPDATE'如果我不使用它..值是空的...但是,在Concat上,我删除了VALUES,现在它工作正常! –

1

尝试从查询

"INSERT INTO table ( 
    objekt_nr, 
    objekt_status) 
    VALUES(
    :objekt_nr, 
    'salj,$fakt') 

    ON DUPLICATE KEY UPDATE 
    objekt_nr = objekt_nr, 
    objekt_status = CONCAT(objekt_status, 'salj,'$fakt)"; 
+0

其实在我的情况下,我需要每个行的“值”,但CONCAT行。如果我确实删除了所有行中的VALUES,则数据库中的值变空了! –