"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo buscar de manera eficiente valores separados por comas en MySQL sin utilizar relaciones de tabla?

¿Cómo buscar de manera eficiente valores separados por comas en MySQL sin utilizar relaciones de tabla?

Publicado el 2024-12-21
Navegar:820

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

Búsqueda eficiente de valores separados por comas en la base de datos MySQL

Al trabajar con tablas de datos que contienen valores separados por comas, encontrar coincidencias específicas puede ser una tarea desafiante. En este caso, tiene dos tablas: clientes (que contiene direcciones de correo electrónico) e imap_emails (donde el campo para contiene direcciones de correo electrónico separadas por comas). Debe buscar de manera eficiente dentro de la tabla imap_emails en función de las direcciones de correo electrónico de la tabla de clientes.

En lugar de utilizar una condición LIKE, puede aprovechar la función FIND_IN_SET para realizar una búsqueda más específica. Esta función le permite verificar si se encuentra un valor específico dentro de una cadena separada por comas.

Solución:

La siguiente consulta demuestra cómo puede usar FIND_IN_SET para obtener resultados eficientes. buscando:

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

Esta consulta realiza una unión interna entre las dos tablas, haciendo coincidir las filas donde está presente el correo electrónico del cliente en el campo separado por comas de la tabla imap_emails. Al utilizar FIND_IN_SET en lugar de LIKE, mejora la eficiencia de la búsqueda y evita falsos positivos.

Consideraciones adicionales:

En su pregunta, mencionó que no puede usar relaciones entre las mesas. Sin embargo, si tiene la capacidad de establecer una relación (por ejemplo, utilizando claves externas), mejoraría significativamente la integridad de los datos y el rendimiento de sus consultas de búsqueda.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3