我想问一下如何在SQL中实现这样的东西
String updateUserDocs1 = "UPDATE USERDOCS SET VIEW_DOCS = VIEW_DOCS + ' ' + ? WHERE USER_ID = ?";
它返回一个 java sql 语法错误。遇到:第 1 行的“WHERE”
该语句在语法上似乎是正确的。可能是什么问题?
最佳答案
许多 SQL 方言支持用于字符串连接的 +
运算符重载,但 ANSI SQL 标准字符串连接运算符是 ||
。
对于 Derby,代码
sql = "UPDATE USERDOCS SET VIEW_DOCS = VIEW_DOCS + ' ' + ? WHERE USER_ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
导致以下错误
java.sql.SQLSyntaxErrorException: The '+' operator with a left operand type of 'VARCHAR' and a right operand type of 'CHAR' is not supported.
但是,
sql = "UPDATE USERDOCS SET VIEW_DOCS = VIEW_DOCS || ' ' || ? WHERE USER_ID = ?";
PreparedStatement ps = conn.prepareStatement(sql);
工作正常。
关于java - 在参数化查询中使用加号连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49214257/