与this question非常相似,只是一个干净利落。
目标:
我需要使用带有ALIAS和LIMIT的DELETE语句。可选择使用USING,WHERE或其他任何其他解决方法,只要它有效。
案例4,6,7,8可能是此问题的解决方案,但每个案例都会返回错误。
案例1,2,3和5只是为了这个例子而显示(如果你愿意的话,填写矩阵)。
架构:
CREATE TABLE test (id int(10));
INSERT INTO test VALUES (1), (2), (3);
DELETE FROM test;
DELETE FROM test LIMIT 1;
DELETE FROM test t;
错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在附近使用#t;#在第2行
DELETE FROM test t LIMIT 1;
错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在附近使用LIMIT 1'在第2行
DELETE FROM t USING test t;
DELETE FROM t USING test t LIMIT 1;
错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得在' LIMIT 1'附近使用的正确语法。在第2行
DELETE FROM test t WHERE 1=1 LIMIT 1;
错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在附近使用1 = 1 LIMIT 1'在第1行
DELETE FROM t USING test t WHERE 1=1 LIMIT 1;
错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得在' LIMIT 1'附近使用的正确语法。在第1行
答案 0 :(得分:1)
那是怎么回事:
DELETE FROM t USING test t INNER JOIN (SELECT id FROM test LIMIT 1) t2 ON t.id = t2.id