Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 02.12.2016, 10:04   #1
Lokos
Участник клуба
 
Регистрация: 29.09.2009
Адрес: Владивосток
Сообщений: 587
Репутация: 55
По умолчанию Поиск по вхождению подстроки в строку + несколько полей

Добрый день.
Встала задача организовать поиск адреса объекта, тоесть пользователь в трочке поиска вбивает скажем Москва Котельная7
и ему выдаются все результаты у которых:
город Москва
улица Котельная
дом 7
Как делал я: создавал отдельное поле туда записывал адрес целеком и выполнял запрос
Код:

SELECT * FROM `tbtest` WHERE `Pole`  Like '%отельна%'

Как сделать тоже но по трем полям тоесть надо сделать конкатинацию полей City Street Home
и в результирующей строке найти подстроку
Lokos вне форума   Ответить с цитированием
Старый 02.12.2016, 10:08   #2
Lokos
Участник клуба
 
Регистрация: 29.09.2009
Адрес: Владивосток
Сообщений: 587
Репутация: 55
По умолчанию

SELECT * FROM `tbtest` WHERE CONCAT(`City`,' ',`Street`) Like '%'+str+'%'
Lokos вне форума   Ответить с цитированием
Старый 02.12.2016, 10:18   #3
Lokos
Участник клуба
 
Регистрация: 29.09.2009
Адрес: Владивосток
Сообщений: 587
Репутация: 55
По умолчанию

может кто подскажет как организован поиск адресов в кладер api и подобных системах, пока наум пришел только такой поиск как описан выше
Lokos вне форума   Ответить с цитированием
Старый 02.12.2016, 10:20   #4
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк, Украина
Сообщений: 15,720
Репутация: 5728
По умолчанию

Если он вбивает Москва Котельная и так же искать, то можно и ни чего не найти. А если то, что ввел разбить на слова и искать
Код:

<выражение> like '%Москва%' and <выражение> like '%Котельная%'

то шансов больше. В том выражении concat или чего еще. Поиск такой кстати не эффективный, индексы работать не будут. Даже и без concat, достаточно % в начале поискового образа
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 02.12.2016, 10:24   #5
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,215
Репутация: 1854
По умолчанию

Код:

pole like '%москва%котельная%'
pole like '%москва% %котельная%'
pole like 'москва% котельная%'
...

__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 02.12.2016, 10:24   #6
Lokos
Участник клуба
 
Регистрация: 29.09.2009
Адрес: Владивосток
Сообщений: 587
Репутация: 55
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Если он вбивает Москва Котельная и так же искать, то можно и ни чего не найти. А если то, что ввел разбить на слова и искать
Код:

<выражение> like '%Москва%' and <выражение> like '%Котельная%'

то шансов больше. В том выражении concat или чего еще. Поиск такой кстати не эффективный, индексы работать не будут. Даже и без concat, достаточно % в начале поискового образа
а разве если в вашем примере он не найдет скажем котельную то результат опять же будет 0
но вариант интересный, попробую
Lokos вне форума   Ответить с цитированием
Старый 02.12.2016, 10:29   #7
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк, Украина
Сообщений: 15,720
Репутация: 5728
По умолчанию

evg_m +
Чего-то не доходило, что и так можно
Цитата:
а разве если в вашем примере он не найдет скажем котельную то результат опять же будет 0
но вариант интересный, попробую
Если искать что-бы и Москава, и Котельникова было, то как еще? А если или то, или другое тогда OR вместо AND
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 02.12.2016 в 10:32.
Аватар вне форума   Ответить с цитированием
Старый 02.12.2016, 10:31   #8
Lokos
Участник клуба
 
Регистрация: 29.09.2009
Адрес: Владивосток
Сообщений: 587
Репутация: 55
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:

pole like '%москва%котельная%'
pole like '%москва% %котельная%'
pole like 'москва% котельная%'
...

только pole разделено на 3 city street home
Lokos вне форума   Ответить с цитированием
Старый 02.12.2016, 10:35   #9
Lokos
Участник клуба
 
Регистрация: 29.09.2009
Адрес: Владивосток
Сообщений: 587
Репутация: 55
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
evg_m +
Чего-то не доходило, что и так можно
Если искать что-бы и Москава, и Котельникова было, то как еще? А если или то, или другое тогда OR вместо AND
Да что то я сглупил)
Lokos вне форума   Ответить с цитированием
Старый 02.12.2016, 10:36   #10
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,215
Репутация: 1854
По умолчанию

Цитата:
только pole разделено на 3 city street home
Код:

<выражение> like ...

__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск символов (подсчёт вхождений подстроки в строку) Kukurudza Общие вопросы C/C++ 2 24.09.2011 10:18
Вхождение подстроки в строку! Edimus Общие вопросы C/C++ 4 04.04.2011 07:50
Поиск по вхождению(плейлист) nXs Мультимедиа в Delphi 3 08.05.2010 16:43
C++: разбить строку на подстроки apromix Помощь студентам 2 04.10.2009 01:07
Вставка подстроки в строку Kortes Общие вопросы C/C++ 2 25.12.2008 12:51




07:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru