Preemiere
@Preemiere
Symfony developer

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

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

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


Приводит к таймауту запроса. Если конструкция верна, как выйти из ситуации?
  • Вопрос задан
  • 2340 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
SELECT SUBSTR(column,1,6), count(0) as cnt FROM tbl group by 1 having cnt>1

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

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

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