我有一个表,其中两个字段定义为varchar(15)。我想知道哪两个记录在两个字段中具有相同的值:
select * from table where field1 = field2
这会返回null结果,但我知道有匹配的记录。我做错了什么?
答案 0 :(得分:2)
如果没有进一步的信息(请参阅我的评论),问题可能是损坏的索引。当你尝试时会发生什么:
select * from table where field1 || '' = field2 || ''
使用此查询将使Firebird忽略索引(如果有)并执行全表扫描。
如果这确实返回了结果,您将需要验证并修复数据库(使用gfix)并备份和恢复数据库或删除并重新创建索引。