¿Busca una forma de filtrar sus filas de una tabla de base de datos SQL, MySQL o MariaDB por columnas idénticas? ¿Buscas una consulta para jugar en la consola?
Recientemente pasé por una situación en la que era necesario filtrar en una tabla de base de datos y solo mostrar filas que tenían dos columnas con los mismos valores de texto. Después de horas de búsqueda, encontré la solución simple y la comparto con ustedes.
No soy programador y creo que la mayoría de las personas que buscan estos consejos tampoco tienen mucho sentido de la programación.
Suelo utilizar el programa Navicat para editar bases de datos, es bastante rápido y práctico, además de que te permite editar filas y columnas con la misma libertad que Microsoft Excel o Apple Numbers.
La mayoría de las personas usan PhpmyAdmin para administrar las bases de datos de su sitio web. Ambos le permiten ejecutar scripts a través de la pestaña SQL o Query.
Uso de consulta SQL para filtrar
Como no soy un profesional de las bases de datos, no sabía que se pueden mostrar tablas filtradas a través de un código de consulta, pero por suerte lo descubrí.
Mi uso en la base de datos es enteramente para eliminar filas, buscar textos y usar el Search and Replace, no tenía idea de que los códigos de SQL son muy útiles.
Yo personalmente utilicé esos códigos para verificar errores de traducción y encontrar líneas que no fueron traducidas en las tablas de base de datos de Translatepress.
Código de consulta SQL
Los siguientes códigos son útiles para:
- Encuentra filas iguales de diferentes columnas;
- Encuentra diferentes filas de diferentes columnas;
- Encuentra el mismo contenido en dos columnas;
SELECT * FROM `databasename`.`tablename` WHERE colum01 = colum02 ORDER BY `id` LIMIT 500 OFFSET 0;
El código que acabamos de ver utiliza WHERE colum01 = colum02 para mostrar filas que tengan resultados iguales en las dos columnas. El código puede extenderse a más columnas si se desea.
Si deseas agregar los filtros tradicionales para encontrar un texto determinado, puedes extender el script antes de ORDER BY añadiendo un AND como en el código a continuación:
SELECT * FROM `databasename`.`tablename` WHERE colum01 = colum02 AND (`colum01` LIKE '%text%') ORDER BY `id` LIMIT 500 OFFSET 0;
Después de AND tenemos un código entre paréntesis que filtra el texto solo en la columna 01. Se utiliza LIKE para encontrar filas que contienen el valor filtrado o NOT LIKE para encontrar filas que no contienen el valor.
La secuencia de comandos se puede ampliar aún más utilizando AND y otro código. Ahora para terminar vamos a mostrar otro código, pero en lugar de mostrar filas con valores iguales, muestra filas con valores diferentes usando
SELECT * FROM `databasename`.`tablename` WHERE colum01 != colum02 ORDER BY `id` LIMIT 500 OFFSET 0;
Espero que este código te ayude a realmente filtrar y buscar por líneas con valores iguales o diferentes de columnas separadas usando filtros convencionales LIKE y NOT LIKE.