微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这种SQL查询语法有什么问题?

如何解决这种SQL查询语法有什么问题?

DELETE 
  FROM 014_terms 
 WHERE term_id IN (SELECT term_id 
                     FROM 014_term_taxonomy 
                    WHERE taxonomy LIKE 'pa_%');

我遇到错误

#1064-您的sql语法有错误;请查看与您的MariaDB服务器版本相对应的手册,以获取正确的语法,以在“ WHERE term_id IN(从014_term_taxonomy选择WHERE分类法,在第1行使用......

注意:我使用的是纯文本编辑器,空格只是普通空格。

我正在使用PHPMyAdmin,并且尝试了将表名用单引号引起来的不同查询变体,如下所示:

sql query:

DELETE FROM '014_terms' WHERE term_id IN (SELECT term_id FROM '014_term_taxonomy' WHERE taxonomy LIKE 'pa_%')

MysqL said:

#1064 - You have an error in your sql Syntax; check the manual that corresponds to your MariaDB server version for the right Syntax to use near ''014_terms' WHERE term_id IN (SELECT term_id FROM '014_term_taxonomy' WHERE t...' at line 1

还有这个

sql query:

DELETE FROM '014_terms' WHERE term_id IN (SELECT term_id FROM 014_term_taxonomy WHERE taxonomy LIKE 'pa_%')

MysqL said:

#1064 - You have an error in your sql Syntax; check the manual that corresponds to your MariaDB server version for the right Syntax to use near ''014_terms' WHERE term_id IN (SELECT term_id FROM 014_term_taxonomy WHERE tax...' at line 1

解决方法

最终的解决方案是使用反引号包装以这样的数字前缀开头的表名。感谢@PaulT。

DELETE FROM `014_terms` WHERE term_id IN (SELECT term_id FROM `014_term_taxonomy` WHERE taxonomy LIKE 'pa_%');

感谢所有提供反馈的人!

:-)

,

您所遇到的问题似乎是表名以数字/数字开头。

尝试更新您的sql_mode

SET @@session.sql_mode=ANSI_QUOTES;

完成上述更改后,尝试执行查询。

DELETE
FROM 014_terms
WHERE term_id IN
    (SELECT term_id
     FROM 014_term_taxonomy
     WHERE taxonomy LIKE 'pa_%');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。