Оператор для поиска строк по неполному названию в колонке.

MapInfo, MapBasic
Ответить
Alekseevich
Участник
Сообщения: 60
Зарегистрирован: 28 янв 2023, 13:38
Репутация: 2
Откуда: Лабытнанги

Оператор для поиска строк по неполному названию в колонке.

Сообщение Alekseevich »

Подскажите, как составить запрос.
Из таблицы нужно выбрать строки; условие для отбора по одной из колонки: известно слово, по которому необходимо отобрать, например, "город". Но в колонке может встречаться не только "город", но и "большой город", "городок" и проч.
Как сформулировать?
Спасибо.
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение gamm »

select * from a where a.key like "%город%"

P.S. Мампинфа по этой части очень убогая, поскольку не допускает использования регулярных выражений.
Alekseevich
Участник
Сообщения: 60
Зарегистрирован: 28 янв 2023, 13:38
Репутация: 2
Откуда: Лабытнанги

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение Alekseevich »

gamm писал(а): 13 фев 2023, 13:27select * from a where a.key like "%город%"

P.S. Мампинфа по этой части очень убогая, поскольку не допускает использования регулярных выражений.
Спасибо! В мануале так и не нашел.

А если поиск нужно осуществить по двум колонкам? То вот так?:
select * from a where a.key like "%город%" or a.key2 like "%город%"
marsel
Участник
Сообщения: 63
Зарегистрирован: 07 мар 2010, 10:02
Репутация: 6
Откуда: Казань

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение marsel »

Проще - щелкнуть правой кнопкой по названию столбца - фильтр - содержит - ввести любой текст или буквы или цифры. То же самое для другого столбца
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение gamm »

типа того ... но скобки с кавычками расставьте, и учтите, что в убогой мапинфе длина строки запроса сильно ограничена, и она ее усекает без предупреждения (а вы гадать будете, что не так). В общем, Мапинфа создавалась для раскрашивания картинок, для работы она не пригодна. Грузите все в PostGIS, и изучайте SQL с расширениями (фенкции с префиксом st_ ). Получаете результат нормальными средствами, и грузите в мапинфу, для раскрашивания. Интерфейс к PostGIS из QGIS, читайте мануалы ...
Alekseevich
Участник
Сообщения: 60
Зарегистрирован: 28 янв 2023, 13:38
Репутация: 2
Откуда: Лабытнанги

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение Alekseevich »

gamm писал(а): 13 фев 2023, 15:56типа того ... но скобки с кавычками расставьте, и учтите, что в убогой мапинфе длина строки запроса сильно ограничена, и она ее усекает без предупреждения (а вы гадать будете, что не так). В общем, Мапинфа создавалась для раскрашивания картинок, для работы она не пригодна. Грузите все в PostGIS, и изучайте SQL с расширениями (фенкции с префиксом st_ ). Получаете результат нормальными средствами, и грузите в мапинфу, для раскрашивания. Интерфейс к PostGIS из QGIS, читайте мануалы ...
Спасибо!
Alekseevich
Участник
Сообщения: 60
Зарегистрирован: 28 янв 2023, 13:38
Репутация: 2
Откуда: Лабытнанги

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение Alekseevich »

marsel писал(а): 13 фев 2023, 15:56Проще - щелкнуть правой кнопкой по названию столбца - фильтр - содержит - ввести любой текст или буквы или цифры. То же самое для другого столбца
Это в какой версии MI ?
marsel
Участник
Сообщения: 63
Зарегистрирован: 07 мар 2010, 10:02
Репутация: 6
Откуда: Казань

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение marsel »

Точно не скажу с какой, но уже давно. В 12.5 и далее точно есть
Alekseevich
Участник
Сообщения: 60
Зарегистрирован: 28 янв 2023, 13:38
Репутация: 2
Откуда: Лабытнанги

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение Alekseevich »

gamm писал(а): 13 фев 2023, 13:27select * from a where a.key like "%город%"
Есть вариант, чтобы не учитывался регистр?
marsel
Участник
Сообщения: 63
Зарегистрирован: 07 мар 2010, 10:02
Репутация: 6
Откуда: Казань

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение marsel »

Alekseevich писал(а): 13 фев 2023, 21:14Есть вариант, чтобы не учитывался регистр?
Так просто - нет.
Можно неполное слово набрать (без буквы которая может быть в другом регистре) или добавить второе условие и/или
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение gamm »

Недавно обсуждали вроде подобное, есть функция перевода всех букв в маленькие, типа lowcase$(), ищите в мануале
lowcase$(a.key) like "%город%"
Alekseevich
Участник
Сообщения: 60
Зарегистрирован: 28 янв 2023, 13:38
Репутация: 2
Откуда: Лабытнанги

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение Alekseevich »

marsel писал(а): 13 фев 2023, 21:21Можно неполное слово набрать (без буквы которая может быть в другом регистре) или добавить второе условие и/или
Сначала так и начал делать. Да покоя не даёт мысль - мало ли кто какой регистр использовал при вводе (не обязательно осознанно; и не обязательно в начале слова-всякое бывает). Поэтому при каждой такой операции навязчивая мысль покоя не даст - мало ли ошибка.
gamm
Гуру
Сообщения: 4168
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1107
Ваше звание: программист
Откуда: Казань

Re: Оператор для поиска строк по неполному названию в колонке.

Сообщение gamm »

LCase$(str)
Ответить

Вернуться в «MapInfo»

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

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