在EXPLAIN中出现SQL语法错误

4

我正在尝试使解释命令在mysql中起作用。我正在尝试排除此删除查询的性能问题:

DELETE FROM boost_cache_relationships
WHERE base_dir = 'cache/normal/www.dane101.com'
    AND page_callback = 'node'
    AND page_type = 'story'
    AND page_id = '2891';

这个查询是从SHOW FULL PROCESSLIST命令输出的结果。

我知道EXPLAIN不能用于DELETE,所以我复制了它,并将DELETE替换为SELECT,得到了以下内容:

explain select
FROM boost_cache_relationships
WHERE base_dir = 'cache/normal/www.dane101.com'
    AND page_callback = 'node'
    AND page_type = 'story'
    AND page_id = '2891';

当我按下回车键时,mysql会给我一个错误消息,说这是无效的SQL:
ERROR 1064(42000):您的SQL语法有误,请检查与您的MySQL服务器版本相对应的手册,以了解在第1行附近使用正确的语法FROM boost_cache_relationships WHERE base_dir ='cache/normal/www.dane101.com' A

1
我认为你是正确的。请将其添加为答案以获得相应的积分。 - Shane Wealti
不用了,我很乐意帮忙。对我来说,这似乎太短了。但还是谢谢你的想法 :-) - nikc.org
3个回答

6

您需要指定一个字段列表:

select * FROM boost_cache_relationships WHERE base_dir = 'cache/normal/www.dane101.com' AND page_callback = 'node' AND page_type = 'story' AND page_id = '2891';

4

选择查询需要列名进行选择,删除查询则不需要。

SELECT *
FROM boost_cache_relationships 
WHERE base_dir = 'cache/normal/www.dane101.com' 
AND page_callback = 'node' 
AND page_type = 'story' 
AND page_id = '2891';

3

在您的选择中尽量选择一些列:

SELECT *...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接