Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
cerber
1

Проблемы с “LIKE”

13.10.2009, 11:56. Просмотров 1533. Ответов 3
Метки нет (Все метки)

Существует страница на ASP с полем ввода поиска.
…..
<form name='form' method='post' action='Searchprices.asp'>

<input type='text'value='<%=request('search')%>' name='Search'>
Далее есть страница с отражением результатов поиска, с таким запросом

sql='Select * From Price WHERE Supplier_Part_Name LIKE '%' & Session('Search') & '%''

Реальный компонент, который необходимо найти такой – mmm4 4700 10/10
В базе данных компонент может быть записан, как с пробелами между группами, так и без пробелов. Пробелов может быть и один и два и три и т.д. Данные в базу данных «загоняются» из прайсов поставщиков, поэтому мы их не набиваем сами, а там может быть все, что угодно. Поэтому проблема в том, что необходимо однозначно идентифицировать компонент, сколько бы пробелов между группами там не стояло, или их не было бы вовсе (в поле ввода запроса). Результат ответа должен быть постоянным.

И вторая проблема с этим же оператором.
Поле ввода запроса такое же.
На странице с результатами запроса такой код

sql = 'execute sp_SearchPrices ' & request.form('search')

Т.е применяется следующая процедура
CREATE PROCEDURE sp_SearchPrices
@Search varchar(30)
AS
select * from Price
where (Name like '%' + @Search+ '%')

order by Name
GO

При поиске компонента, название которого начинается с буквы, результат нормальный, при поиске компонента, название которого начинается с цифры (например, 74hc),
вываливается ошибка
1: Incorrect syntax near 'hc'.

Может быть кто-нибудь сталкивался с подобными ошибками, прошу подсказать.
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2009, 11:56
Ответы с готовыми решениями:

Проблемы с инетом, не отправляется почта, проблемы со связью с другой организацией
Здравствуйте. Есть проблемка. Такая ситуация - Организация. Компьютеры подключены по локалке....

Проблемы с wi-fi
У меня стоит роутер tp-link tl-wr740n Пол года пользования прошли на ура.И вот буквально на днях...

Проблемы с БП
Здравствуйте. Купил новый БП FSP Epsilon 80+ 800W в замен старому, от которого теоретически сгорели...

Проблемы с XP
у меня: AMDx2 2,5 Ггц, мать-ASUS M2N MX-SE, видюха-nVIDIA GF 9800 GT, винт-250 Gb Western,...

Проблемы с БД
Задание следующее: Разработать базу данных «Домашняя фонотека» (названия аудиокассет, компакт...

3
borm
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 458
13.10.2009, 12:33 2
Попробуй программно в ASP или хранимой процедуре задавать маску поточнее, с % в тех местах, где возможен пробел

например

LIKE 'mmm%4%4700%10%/%10'

должен найти

mmm4 4700 10/10
mmm 4 4700 10 / 10
mmm4 4700 10/ 10
0
borm
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 458
13.10.2009, 12:36 3
либо попробуй при записи прайсов приводить обозначения товаров к одному формату - это был бы самый лучший вариант, т.к. при поиске с LIKE сервер тормозит
0
monstrU
0 / 0 / 1
Регистрация: 30.11.2006
Сообщений: 510
13.10.2009, 12:37 4
можно попробовать
sql='Select * From Price WHERE Supplier_Part_Name LIKE '%mmm4%' and
Supplier_Part_Name LIKE '%4700%' and
Supplier_Part_Name LIKE '%10/10%'
0
13.10.2009, 12:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2009, 12:37

Проблемы
Недавно начались очень при очень сильные лаги на компе. С начало на компе была установлена Windows...

Проблемы с WI FI
Подключился к wifi, а он открывает только один сайт. Другие просто не грузит

Проблемы...
Собственно нельзя зайти мой комп.&gt;управление, выбивает это: Затем окно приветствия стал серым,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru