Я задал аналогичный вопрос пару месяцев назад. Находится здесь: MySQL Query based on stringСравнение строк MySQL
Проблема, с которой я сталкиваюсь, заключается в том, что это работает только в одном конкретном порядке, а в некоторых случаях это работает слишком хорошо.
Вот фрагмент данных, что этот запрос отфильтровывая (дубликаты предназначены, фактические данные):
- BELLMORE
- ATLANTIC BCH
- ATLANTIC BEACH
- E HILLS
- EAST HILLS
- EAST ROCKAWAY
- FAR ROCKAWAY
- FLORAL PARK
- FLORAL PARK
- HIGHLAND HEIGHTS
- N HIGHLAND HGTS
- NORTH HIGHLAND HEIGHTS
Один запроса, который помог в моем последнем вопросе (MySQL Query based on string) работал хорошо для одного экземпляра и не удалось выполнить другой экземпляр. Вот запрос:
select names from tablename group by substring_index(names," ",1)
Который возвращает:
- BELLMORE
- ATLANTIC BEACH
- EAST HILLS
- FAR ROCKAWAY
- FLORAL PARK
- HIGHLAND HEIGHTS
- N HIGHLAND HGTS
- NORTH HIGHLAND HEIGHTS
Проблема с этим является то, что, как вы можете видеть, что удалили город, что он не должен иметь, потому что это было только с помощью первого слова сгруппировать его. Удаленный из них:
- EAST ROCKAWAY
Это было GROUP'ed BY EAST.
Поскольку я продолжаю писать это, я чувствую, что это почти невозможно, потому что положение статического имени города и переменных частей всегда меняется. Если вы не можете сравнить определенное количество символов. Что далеко не безупречно. Если кто-то думает, что у них может быть какое-то понимание, или они работали, и я достиг такого, я буду благодарен за отзывы и рекомендации. Конечный результат будет:
- BELLMORE
- ATLANTIC BEACH
- EAST HILLS
- EAST ROCKAWAY
- FAR ROCKAWAY
- FLORAL PARK
- HIGHLAND HEIGHTS
Можете ли вы вручную создать список общих синонимов, таких как 'N' =' North', 'Hghts' =' Heights' и т. Д. – mellamokb