Firebird查询给出了奇怪的结果

时间:2011-11-28 20:36:46

标签: sql firebird

我有一个表,其中两个字段定义为varchar(15)。我想知道哪两个记录在两个字段中具有相同的值:

 select * from table where field1 = field2 

这会返回null结果,但我知道有匹配的记录。我做错了什么?

1 个答案:

答案 0 :(得分:2)

如果没有进一步的信息(请参阅我的评论),问题可能是损坏的索引。当你尝试时会发生什么:

select * from table where field1 || '' = field2 || ''

使用此查询将使Firebird忽略索引(如果有)并执行全表扫描。

如果这确实返回了结果,您将需要验证并修复数据库(使用gfix)并备份和恢复数据库或删除并重新创建索引。