如何解决这种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 举报,一经查实,本站将立刻删除。