Неправильный поиск

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
ProgSoldier
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 24
Зарегистрирован: 24.12.2005 (Сб) 0:17
Откуда: Украина

Неправильный поиск

Сообщение ProgSoldier » 30.08.2006 (Ср) 20:25

VB6+MySQL Server
Короче такая вот фиКня получилась.... Делаю запрос, используя несколько таблиц. Выборку делаю ч/з LIKE:


Код: Выделить всё
mSQL.DataSource="SELECT ORGANISATIONS.NAME AS NAME, ORGANISATIONS.PHYSADDR1 AS PHYSADDR, ORGANISATIONS.PHONEFAX AS PHONEFAX, OGRANISATIONS.RATING AS RATING FROM ORGANISATIONS, WARES, PRICES WHERE PRICES.ORG_ID=ORGANISATIONS.ID AND PRICES.WARES_ID=WARES.ID AND WARES.NAME LIKE ""%" & txtSrch.Text & "%"" ORDER BY ORGANISATIONS.RATING DESC"
mSQL.Refresh
'..... code goes here


Результат - вывод записей НЕ содержащих сроку в текстбоксе txtSrch, хотя записи, которые включают эту строку, тоже есть
Не понял прикола вААще.
Когда беру вместо LIKE знак равенства (хотя это мне не нужно), то все пашет, как надо. Как только беру LIKE с использованием маски поиска (эт типа "%фирма%") - начинается лажа.... Может кто решал подобные траблы?...
Если страуса пугать с частотой 50 раз в секунду, то его можно использовать как отбойный молоток

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.08.2006 (Ср) 22:54

Код: Выделить всё
"... AND WARES.NAME LIKE '%" & txtSrch.Text & "%' ..."

Разве что это... Ну или покажи типичное содержимое поисковой строки, при котором не пашет.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 31.08.2006 (Чт) 8:19

MySQL? Провайдер, видимо, ODBC.
Попробуй использовать "*" вместо "%".
Lasciate ogni speranza, voi ch'entrate.

ProgSoldier
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 24
Зарегистрирован: 24.12.2005 (Сб) 0:17
Откуда: Украина

Сообщение ProgSoldier » 10.09.2006 (Вс) 19:42

Ennor писал(а):
Код: Выделить всё
"... AND WARES.NAME LIKE '%" & txtSrch.Text & "%' ..."

Разве что это... Ну или покажи типичное содержимое поисковой строки, при котором не пашет.


"... AND WARES.NAME LIKE '%ТЕЛЕКОМ%' ..."

2alibek
ОК, попробую..... :roll:
Если страуса пугать с частотой 50 раз в секунду, то его можно использовать как отбойный молоток

ProgSoldier
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 24
Зарегистрирован: 24.12.2005 (Сб) 0:17
Откуда: Украина

Сообщение ProgSoldier » 13.09.2006 (Ср) 15:36

alibek писал(а):MySQL? Провайдер, видимо, ODBC.
Попробуй использовать "*" вместо "%".

Зведочки не подходят - ими можно пользоваться при работе с числовыми данными. Обязятельно - %

Что, никто больше не встречал такого рода проблем?
Если страуса пугать с частотой 50 раз в секунду, то его можно использовать как отбойный молоток

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.09.2006 (Ср) 21:26

А не ты решаешь, какой символ что означает, а провайдер.

Если надо искать специальный символ - см. правила по экранированию оного для данного провайдера. Это может быть удвоение, постановка слеша, взятие в квадратные кавычки...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList