Запрос Firebird дает странные результаты - PullRequest
1 голос
/ 29 ноября 2011

У меня есть таблица с двумя полями, определенными как varchar (15).Я хочу знать, какие записи имеют одинаковое значение в обоих полях:

 select * from table where field1 = field2 

, это возвращает нулевой результат, хотя я знаю, что есть записи, которые соответствуютЧто я делаю не так?

1 Ответ

2 голосов
/ 29 ноября 2011

Без дополнительной информации (см. Мои комментарии) проблема может быть в поврежденном индексе.Что происходит, когда вы пытаетесь:

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

Использование этого запроса заставит Firebird игнорировать индекс (если есть) и выполнить полное сканирование таблицы.

Если это вернет результат, выхотите проверить и, возможно, восстановить базу данных (используя gfix ), а также выполнить резервное копирование и восстановление базы данных или удалить и заново создать индекс.

...