EXPLAIN中的SQL语法错误

时间:2011-08-01 17:15:16

标签: mysql sql

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

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不能用于删除,所以我复制它并用SELECT替换DELETE来提供以下内容:

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';

当我按Enter键时,mysql给出了一条错误消息,指出这是无效的SQL:

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   在'FROM boost_cache_relationships WHERE base_dir =附近使用的语法   'cache / normal / www.dane101.com'A'在第1行

我做错了什么?

3 个答案:

答案 0 :(得分: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';

答案 1 :(得分: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';

答案 2 :(得分:3)

在您的选择中尝试选择一些列:

SELECT *...