我试过使用这个,但是它会引发语法错误。
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:语法出错;请检查与MySQL服务器版本相对应的手册,以获得正确的语法,以使用接近'DELETE从回复其中类型=3和id in‘的语法(在第1行从
like中选择id注释’)
发布于 2015-03-03 14:43:08
试试这个:
DELETE FROM reply WHERE type = 3 AND id IN (SELECT id FROM `like`
WHERE commentId = :commentId));
SET @deletedRepliesCount = SELECT ROW_COUNT() + @deletedRepliesCount 发布于 2015-03-03 14:44:40
按照link尝试下面的内容
SET @deletedRepliesCount := (DELETE FROM reply WHERE type = 3 AND id IN (SELECT id FROM like WHERE commentId = :commentId)) + @deletedRepliesCount;发布于 2015-03-03 14:57:30
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 |
+----+---------------------+---------------------+---------+https://stackoverflow.com/questions/28834232
复制相似问题