Задать вопрос
Preemiere
@Preemiere
Symfony developer

MySQL — как осуществить поиск записей повторяющихся в пределах N символов?

В таблице более 7000 уникальных записей, как выбрать записи повторяющиеся в первых 6 символах?

Конструкция вида
SELECT column,count(*) FROM tbl
WHERE column IN (SELECT SUBSTR(column,1,6) FROM tbl)


Приводит к таймауту запроса. Если конструкция верна, как выйти из ситуации?
  • Вопрос задан
  • 2341 просмотр
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Профессия Python-разработчик + ИИ
    10 месяцев
    Далее
  • Академия Эдюсон
    FullStack-разработчик: тариф PRO
    14 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Java-разработчик + ИИ
    9 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
SELECT SUBSTR(column,1,6), count(0) as cnt FROM tbl group by 1 having cnt>1

Если это делать надо быстро, а тем более часто - сделайте отдельное индексированное поле с первыми 6 символами.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
В разы быстрее создать временную таблицу, в которые заинсертить сразу подстроку.
И делать объединение этой таблицы с собой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы