Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Вниз

Проблема с запросом SELECT FROM WHERE LIKE   Найти похожие ветки 

 
Antah   (2002-12-17 13:56) [0]

Чудеса какие-то. Ничего не понимаю, и никто не может помочь.
Полный бред с SQL-запросом c использованием оператора LIKE.

Есть компьютер, Win98, Delphi 3 Client-server suite.

Есть простая проиндексированная таблица формата Paradox DB (30000 записей) с одним полем (тип A, имя "word"). В таблице - русские слова (орфографический словарик). В программе формируется запрос к таблице (разными способами, вплоть до ручного ввода через edit-поле, специально сделал на форме для тестирования) и выводится результат запроса.

Следующие запросы отрабатываются абсолютно корректно:

1. SELECT WORD FROM DB_NAME WHERE WORD LIKE "_Я"
Результат - все слова из двух букв, оканчивающиеся на "Я".

2. SELECT WORD FROM DB_NAME WHERE WORD LIKE "Я%"
Результат - все слова, начинающиеся на "Я".

3. SELECT WORD FROM DB_NAME WHERE WORD LIKE "Я__"
Результат - все слова из трех букв, оканчивающиеся на "Я".

4. SELECT WORD FROM DB_NAME WHERE WORD LIKE "_Я_"
Результат - все слова из трех букв, с буквой "Я" в середине.

Далее - чудо. Запрос, который меня лишил сна на пять дней:

5. SELECT WORD FROM DB_NAME WHERE WORD LIKE "Я_"
Результатом почему-то вместо ожидаемого набора двухбуквенных слов, начинающихся с буквы "Я", вываливаются ВСЕ слова, начинающиеся с этой буквы. То есть результат получается аналогичным результату запроса № 2.

Для справки:

1. Этот же эапрос к этой же таблице на этом же компьютере, будучи запущенным из программы Database Desktop 7 пакета Delphi 3 Client-server suite, отрабатывается абсолютно корректно.
2. Этот же эапрос к этой же таблице на этом же компьютере, будучи запущенным из пакета Borland Paradox 4.0, отрабатывается абсолютно корректно.

Кто-нибудь верит в чудеса?


 
Johnmen   (2002-12-17 14:06) [1]

Все отлично рассказал ! Только забыл указать движок для БД...:)))
И, кстати, а с другими буквами нормально ?
А то есть сильное подозрение...:)))


 
Карелин Артем   (2002-12-17 15:28) [2]

Johnmen © (17.12.02 14:06)
Есть простая проиндексированная таблица формата Paradox DB (30000 записей) с одним полем (тип A, имя "word")


 
ЮЮ   (2002-12-18 04:06) [3]

Очевидно, TQuery делает предварительный разбор SQL предложения (например, он поддерживает параметры), в результате которого LIKE "Я_" преобразуется в LIKE "Я%", отсюда и разные результаты



 
ЮЮ   (2002-12-18 04:08) [4]

Попробуй часть после LIKE передавать параметром, т.е. уже после обработки текста запроса



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
3-36934
widom
2002-12-18 05:28
2003.01.13
Подскажите функцию


3-36968
Сергей Бушин
2002-12-14 17:58
2003.01.13
Поле AutoIncrement при вставке в ClientDataSet


1-37036
Palladin
2003-01-02 13:19
2003.01.13
по поводу control ов


1-37054
tupoy
2003-01-02 22:54
2003.01.13
Шифрование


1-37097
Goblinus
2003-01-04 01:38
2003.01.13
2 вопросика





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский