Сравнение строк MySQL

Я задавал аналогичный вопрос пару месяцев назад. Находится здесь: Запрос 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 на основе строки ) работал хорошо для одного экземпляра и не работал для другого экземпляра. Вот запрос:

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

Он был СГРУППИРОВАН ПО ВОСТОКУ.

Пока я продолжаю писать это, я чувствую, что это почти невозможно, потому что положение статического названия города по сравнению с переменными частями всегда меняется. Разве что можно сравнить определенное количество символов. Что далеко не безупречно. Если кто-то думает, что у него может быть какое-то понимание или он работал и достиг чего-то подобного, я буду признателен за отзыв и руководство. Конечным результатом будет:

- BELLMORE
- ATLANTIC BEACH
- EAST HILLS
- EAST ROCKAWAY
- FAR ROCKAWAY
- FLORAL PARK
- HIGHLAND HEIGHTS

6
задан Community 23 May 2017 в 12:27
поделиться