服务器环境:windows2000,sybase ASE 11.9.2
一个表,里面的三个字段A B C均为字符串类型(varchar或者char),其中C的实际数据为c1, c2, c3等有限的几种。表的主键和索引都不是ABC三个字段。下面的sql语句:
SELECT * FROM tbl_name WHERE A='a' AND (C='c1' OR (C='c2' AND B='b'))
是能够正常执行,得到数据的。但是当在字段C是创建索引:
CREATE INDEX idx_name ON tbl_name(C)
之后,上面的SELECT sql语句也能正常执行,但却无法得到数据了。而在创建索引前后,符合WHERE条件的数据是肯定存在的,所以可以理解为这个索引导致了sql的执行结果无数据;在删除索引之后,马上就又能取到数据了。
这是索引有问题?还是索引损坏?还是其它的什么问题?
一直看你的博客, 受益良多, 却几乎没有留言, 趁这个中秋佳节, 顺道带个祝福, 中秋快乐表示谢意!
谢谢,也祝你中秋愉快!国庆快乐!