我正在尝试将两个ID号连接在一起,但在它们之间添加逗号以相互分离。我知道要使用的mysql语句,但我很难将其转换为我的java程序中的字符串。我可以在没有逗号的情况下使用它,但我似乎无法找出添加逗号的语法。
这是我的尝试:
query = "UPDATE table SET idColumn = concat(idColumn, ','"+idNum+") WHERE word = '"+wordVariable+"' ";
为了澄清,我有一个单词表,其中包含一个单词列和一个ID号列。例如,我的ID列可能包含一个数字作为ID,但在多个连接后,它可能看起来像:
2,5,4,7,1
答案 0 :(得分:4)
将您的查询更改为:
query = "UPDATE table SET idColumn = concat(idColumn, ',"+idNum+"') WHERE word = '"+wordVariable+"' ";
我认为你在使用引号中犯了错误。
或者您可以在','。
之后添加逗号query = "UPDATE table SET idColumn = concat(idColumn, ',' , '"+idNum+"') WHERE word = '"+wordVariable+"' ";
答案 1 :(得分:1)
更改:
query = "UPDATE table
SET idColumn = concat(idColumn, ','"+idNum+")
WHERE word = '"+wordVariable+"' ";
致:
query = "UPDATE table SET idColumn = concat( idColumn, ',', ? ) WHERE word = ? ";
您在,
','
之后遗漏了concat
个逗号。
使用PreparedStatement
的实例,您可以为查询占位符设置值。
pst.setInt( 1, idNum );
pst.setString( 2, wordVariable );
而且,我认为,idColumn
上的数据表设计不正确。您最好使用规范化形式的表和数据,而不是存储逗号分隔值。