2012-05-07 67 views
0

我有一个MySQL查询,只有崩溃在一个特定的where子句,它说table has crashed and needs to be repairedMySQL查询打破WHERE条件

此查询的工作:

SELECT 
    DirectionId 
FROM 
    Messages 
WHERE 
    CustomField1 = 56 AND DirectionId = 1 

这一个不

SELECT 
    DirectionId 
FROM 
    Messages 
WHERE 
    CustomField1 = 209 AND DirectionId = 1 

但如果我这样做它的工作原理:

SELECT 
    DirectionId 
FROM 
    Messages 
WHERE 
    CustomField1 = 209 

或者,这也适用

SELECT 
    DirectionId 
FROM 
    Messages 
WHERE 
    DirectionId = 1 

任何想法?

+2

请加SHOW CREATE TABLE Messages'你的问题的'输出。好像你有一个索引'KEY(CustomField1,DirectionId)'(或者类似的),这个索引被破坏并且需要被重建。 – Kaii

+3

对于简单的尝试,请在MySQL CLI上执行REPAIR TABLE Messages。 – Kaii

+0

可以显示表结构吗? – sree

回答

0

尝试使用MySQL的内部清理程序来修复您的索引:在MySQL的CLI

键入:

REPAIR TABLE Messages