H2删除查询限制

Ber*_*ema 5 sql h2

我正在尝试从 h2 数据库(版本 1.0.71)中删除记录,但出现查询语法错误。我执行的查询是:

DELETE FROM TABLE_NAME WHERE QUERY_FIELD LIKE '%somevalue%' LIMIT 1000;
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是(这对我来说不是很有帮助):

Syntax error in SQL statement DELETE FROM TABLE_NAME WHERE QUERY_FIELD LIKE '%somevalue%' LIMIT[*] 1000;
Run Code Online (Sandbox Code Playgroud)

LIMIT部分似乎是问题所在,h2 1.0.71 不支持此功能吗?

当我执行类似的SELECT查询时:

SELECT * FROM TABLE_NAME WHERE QUERY_FIELD LIKE '%somevalue%' LIMIT 1000;
Run Code Online (Sandbox Code Playgroud)

它给了我预期的结果。LIKE和的组合LIMIT可能有问题吗?

Rac*_*cha 2

SELECT您可以在子句中添加WHERE如下声明:

DELETE
FROM TABLE_NAME
WHERE QUERY_FIELD LIKE '%somevalue%'
AND id_field IN (SELECT id_field
                   FROM table_name
                  WHERE QUERY_FIELD LIKE '%somevalue%'
                  LIMIT 1000)
Run Code Online (Sandbox Code Playgroud)