«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно искать значения, разделенные запятыми, в MySQL без использования связей между таблицами?

Как эффективно искать значения, разделенные запятыми, в MySQL без использования связей между таблицами?

Опубликовано 21 декабря 2024 г.
Просматривать:593

How to Efficiently Search Comma-Separated Values in MySQL Without Using Table Relationships?

Эффективный поиск значений, разделенных запятыми, в базе данных MySQL.

При работе с таблицами данных, содержащими значения, разделенные запятыми, поиск определенных совпадений может быть сложной задачей. В данном случае у вас есть две таблицы: customer (содержащая адреса электронной почты) и imap_emails (где поле to содержит адреса электронной почты, разделенные запятыми). Вам необходимо эффективно выполнять поиск в таблице imap_emails на основе адресов электронной почты из таблицы клиентов.

Вместо использования условия LIKE вы можете использовать функцию FIND_IN_SET для выполнения более целенаправленного поиска. Эта функция позволяет вам проверить, найдено ли определенное значение в строке, разделенной запятыми.

Решение:

Следующий запрос демонстрирует, как вы можете использовать FIND_IN_SET для эффективного поиск:

SELECT *
FROM imap_emails
INNER JOIN customers
ON FIND_IN_SET(customers.email, imap_emails.to) > 0

Этот запрос выполняет внутреннее соединение между двумя таблицами, сопоставляя строки, в которых адрес электронной почты клиента присутствует в поле to, разделенном запятыми, таблицы imap_emails. Используя FIND_IN_SET вместо LIKE, вы повышаете эффективность поиска и избегаете ложных срабатываний.

Дополнительные соображения:

В своем вопросе вы упомянули, что нельзя использовать отношения между столы. Однако если у вас есть возможность установить связь (например, с помощью внешних ключей), это значительно повысит целостность данных и производительность ваших поисковых запросов.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3