У меня есть одна таблица, в которой я пытаюсь запустить SQL-запрос (классический ASP). Таблица построена следующим образом:.ASP SQL Поиск одной строки в нескольких столбцах одной таблицы
ID Name City State Zip Country
1 Name1 Los Angeles CA 90210 USA
2 Miami New York NY 10011 USA
3 Name3 Miami FL 33184 USA
Я хотел бы быть в состоянии выполнить запрос, который искали несколько столбцов (например, «Miami, FL) и возвращает правильные результаты
поиск приходит в Name=SearchTerm
, и мой текущий запрос SQL является:
fp_sQry="SELECT * FROM tableName WHERE ((Shiur = '2') or (Shiur IS NULL)) AND ((City LIKE '::Name::%') or (State LIKE '%::Name::') or (Name LIKE '%::Name::%') or (Zip LIKE '%::Name::%') or (Country LIKE '%::Name::%')) AND (Nusach LIKE '%::Nusach::%') ORDER BY Name ASC"
Как она стоит, я только в состоянии запустить поиск по одной колонке, так Name=Miami
фактически выполняет поиск всех столбцов и возвращает все соответствующие результаты, в то время как Name=Miami
, + FL или Name=Miami+FL
возвращает 0 результатов.
Любые идеи о том, как настроить мой запрос на соответствие нескольким частям запроса в нескольких столбцах?
Этот ответ помог прояснить несколько вещей, благодаря кучке! Все еще не работает, с 'DIM searchTerm, inputSplit searchTerm = Request.querystring (" Name ") inputSplit = Split (searchTerm,", ")' и 'fp_sQry =" SELECT * FROM tblShuls WHERE ((Shiur = '2') или (Shiur IS NULL)) И City + State + Name + Zip + Country LIKE '% :: response.write searchTerm ::%' или (City = ':: City ::') или (Страна = ':: Страна: : ') AND (Nusach LIKE'% :: Nusach ::% ') ORDER BY Name ASC "' В итоге я возвращаю результаты со всеми записями в моей базе данных, поэтому они, очевидно, все претендуют на этот очень открытый шаблон. –
Я не думаю, что 'response.write searchTerm' принадлежит. Тем не менее, вы должны использовать параметризованные запросы в любом случае (см. Последнюю ссылку в моем ответе или ответы на [этот вопрос] (http://stackoverflow.com/q/1092512/1630171)). –