Выберите разные значения

0

У меня очень большая таблица базы данных с более чем 500 тыс. Строк. Таблица содержит почтовую адреса:

USERID, ADDRESS, CITY, COUNTY, ZIP , COUNTRY .... 

Мне нужно получить уникальные имена графства одной страны со стола, поэтому я попробовал:

SELECT DISTINCT 'county'
FROM 'addressess'
WHERE 'country' = 'USA'
AND 'county' LIKE '%al%' ESCAPE '!'

Но он возвращает мне те же имена графства, поэтому я попробовал следующий с distanct

SELECT DISTINCT 'county'
FROM 'addressess'
WHERE 'country' = 'USA'
AND 'county' LIKE '%al%' ESCAPE '!'
GROUP BY 'county'

еще одна проблема, что мне не хватает

  • 1
    MySQL не поддерживает 500 тыс. Столбцов. Предположительно вы имеете в виду «строки».
Теги:

2 ответа

0
Лучший ответ

Этот запрос (предложение escape и одинарные кавычки не нужны):

SELECT DISTINCT county
FROM addressess
WHERE country = 'USA' AND county LIKE '%al%';

возвращает отдельные имена. GROUP BY делает то же самое. SELECT DISTINCT почти никогда не требуется с GROUP BY; в этом случае оба вместе делают то же, что и индивидуально.

Если два имени выглядят одинаково, это не значит, что они одинаковы. Там могут быть пробелы или другие скрытые символы. Вы можете добавить length(county) и char_length(county) чтобы увидеть, совпадают ли длины, и если количество символов, которые вы видите, соответствует возвращаемым функциям.

Без выборочных данных или SQL-скрипта трудно дать больше рекомендаций.

  • 0
    Выше я привел псевдо-пример, после прочтения вашего комментария я подумал, что, возможно, вокруг немного места, поэтому, чтобы быть уверенным, я попытался с этим запросом> UPDATE zips set county = TRIM (county); Запрос в норме, затронуто 0 строк (0,47 сек.) Строк соответствует: 457040 Изменено: 0 Предупреждений: 0 и выполнено снова мой поиск, но та же проблема
  • 0
    пример результата pastebin.com/wqL3rm4W
0

Ниже SQL достаточно создать отдельный граф:

    SELECT DISTINCT county
    FROM addressess
    WHERE country = 'USA' AND county LIKE '%al%';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню