Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Поиск по текстовому полю (лишнии пробеллы)  [new]
_wer_wolf_
Member

Откуда:
Сообщений: 27
Подскажите как поборот такую проблемму
Есть Таблица в одно из полей заносится название товара с пробелами нужно осуществить поиск по названию но есть проблемма данные для поиска выбираются с сайта, а там при выводе текст оптимизируется для красоты и из него выризаться сдвоенные пробелы, другими словами
В базе
CARAT EXELERO  легковая летняя
а на сайте
CARAT EXELERO легковая летняя


и если сделать тупо

Caption='CARAT EXELERO легковая летняя' 
то результат поиска 0 если же сделать

Caption LIKE '%CARAT EXELERO  легковая летняя%'


то результат тоже 0 я пока чо вижу только 1 вариант это php резать запись на отдельные слова и делать что то типа

Caption LIKE '%CARAT%EXELERO%легковая%летняя%'


Но откровенно что то не очень мне нравится это решение вот хотел узнать может есть вариант по элегантнее?
11 дек 11, 01:33    [11743822]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
Sack
Member

Откуда:
Сообщений: 163
_wer_wolf_,
вот вам быстрое решение с REPLACE
WHERE REPLACE('CARAT EXELERO  легковая летняя',' ','')=REPLACE('CARAT EXELERO легковая летняя',' ','')


но вообще, стоит решить эту проблему, удалив лишние проблемы.
11 дек 11, 06:00    [11744132]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
Sack
вот вам быстрое решение с REPLACE

И в чем быстрота? Если только в написании текста запроса...
А если между словами три пробела?

_wer_wolf_, безусловно, данные при хранении нужно нормализовать. Что касается поиска, то:
а) есть FTS
б) Что делать, когда Full-Text бессилен или зарисовки на тему LIKE '%искомое%'
11 дек 11, 10:07    [11744195]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
_wer_wolf_
то результат тоже 0 я пока чо вижу только 1 вариант это php резать запись на отдельные слова и делать что то типа
Caption LIKE '%CARAT%EXELERO%легковая%летняя%'

Но откровенно что то не очень мне нравится это решение вот хотел узнать может есть вариант по элегантнее?
После решения этой проблемы немедленно всплывёт следующая - искать по строке "CARAT EXELERO летняя легковая"

Лучьше сразу сделать нормально, как пишет invm: FTS или самодельная индекспция
11 дек 11, 12:54    [11744329]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
Sack
Member

Откуда:
Сообщений: 163
invm
Sack
вот вам быстрое решение с REPLACE

И в чем быстрота? Если только в написании текста запроса...
А если между словами три пробела?


быстрое - имелось в виду, что быстро реализуемое. Конечно, ничего хорошего в нем нет.
11 дек 11, 14:39    [11744505]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
_wer_wolf_
Member

Откуда:
Сообщений: 27
alexeyvg
_wer_wolf_
то результат тоже 0 я пока чо вижу только 1 вариант это php резать запись на отдельные слова и делать что то типа
Caption LIKE '%CARAT%EXELERO%легковая%летняя%'

Но откровенно что то не очень мне нравится это решение вот хотел узнать может есть вариант по элегантнее?
После решения этой проблемы немедленно всплывёт следующая - искать по строке "CARAT EXELERO летняя легковая"

Лучьше сразу сделать нормально, как пишет invm: FTS или самодельная индекспция


Не варинат с перестановкой слов быть не может да и добовлением лишних знаков тоже вроде как невозможен проблемма только в том что текст в базу набирают руками (в покупной закрытый софт) и там нет проверки на ввод повторяющихся пробелов, а при выборке в PHP и отображении в браузер лишнии пробелы съедаються толи каким то оптимизатором php толи просто самим html и когда этот же текст через get возвращаеш в скрип и начинаеш поиск по нему то он уже не находит
11 дек 11, 14:55    [11744542]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
_wer_wolf_, почему не рассматриваете возможность реализации через FTS?
11 дек 11, 15:51    [11744699]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
_wer_wolf_
Member

Откуда:
Сообщений: 27
dmitry stakanov
_wer_wolf_, почему не рассматриваете возможность реализации через FTS?


Пните меня в доку плиз?
11 дек 11, 16:25    [11744785]     Ответить | Цитировать Сообщить модератору
 Re: Поиск по текстовому полю (лишнии пробеллы)  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
_wer_wolf_,вот.
11 дек 11, 16:45    [11744849]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить