我试过使用它,但它会引发语法错误。
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行“
答案 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 |
+----+---------------------+---------------------+---------+