我可以使用String作为WHERE CLAUSE

时间:2014-04-06 11:13:32

标签: mysql sql jsp

任何人都可以帮我解决这个JSP问题。 我试图使用类似于此的代码更新数据库:

所以,我在我的Servlet上有这个:

String QueryCondition = "id = 1";

将传递给此存储过程:

CREATE 
    DEFINER=`root`@`localhost` 
    PROCEDURE `storedprocedure_1`(QueryCondition TEXT)
BEGIN
    UPDATE users SET name = 'John'
    WHERE QueryCondition;
END

我在想这是否可行,因为更新总是失败 如果这不可能你能推荐我怎么做这样的事情

1 个答案:

答案 0 :(得分:0)

您可以在存储过程中使用它,但使用预准备语句。

示例

DELIMITER //

CREATE 
  DEFINER=root@localhost 
  PROCEDURE storedprocedure_1(QueryCondition TEXT) 
BEGIN 
  SET @query := CONCAT( 'UPDATE users SET name = \'John\' WHERE ',
                        QueryCondition );

  PREPARE stmt FROM @query;
  EXECUTE stmt;
  DROP PREPARE stmt;
END;
//

DELIMITER ;