如何将删除结果保存到mysql中的变量?

时间:2015-03-03 14:25:03

标签: mysql sql

我试过使用它,但它会引发语法错误。

SET @deletedRepliesCount = (DELETE FROM reply WHERE type = 3 AND id IN (SELECT id FROM `like`
WHERE commentId = :commentId)) + @deletedRepliesCount;
  

“com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在'DELETE FROM reply WHERE type = 3附近使用正确的语法AND id IN(SELECT id FROM like   评论'在第1行“

3 个答案:

答案 0 :(得分:1)

试试这个:

DELETE FROM reply WHERE type = 3 AND id IN (SELECT id FROM `like`
WHERE commentId = :commentId));
SET @deletedRepliesCount = SELECT ROW_COUNT() + @deletedRepliesCount 

答案 1 :(得分:0)

根据link

尝试以下内容
SET @deletedRepliesCount := (DELETE FROM reply WHERE type = 3 AND id IN (SELECT id FROM like WHERE commentId = :commentId)) + @deletedRepliesCount;

答案 2 :(得分:0)

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,created DATETIME NOT NULL
,modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
,deleted TINYINT NOT NULL DEFAULT 0
);

INSERT INTO my_table (created) VALUES 
('2015-01-01 00:00:00'),
('2015-02-01 00:00:00'),
('2015-03-01 00:00:00'),
('2015-03-02 00:00:00'),
('2015-03-02 00:00:00'),
('2015-03-03 00:00:00');

UPDATE my_table SET deleted = 1 WHERE id > 3;

SELECT * FROM my_table WHERE deleted = 1;
+----+---------------------+---------------------+---------+
| id | created             | modified            | deleted |
+----+---------------------+---------------------+---------+
|  4 | 2015-03-02 00:00:00 | 2015-03-03 14:56:11 |       1 |
|  5 | 2015-03-02 00:00:00 | 2015-03-03 14:56:11 |       1 |
|  6 | 2015-03-03 00:00:00 | 2015-03-03 14:56:11 |       1 |
+----+---------------------+---------------------+---------+