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.
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