¿Es posible buscar tablas de una base de datos completa (fila y columna) para encontrar una cadena particular.
Tengo una base de datos llamada A con aproximadamente 35 tablas, necesito buscar la cadena llamada "hola" y no sé en qué tabla se guarda esta cadena. ¿Es posible?
Usando MySQL
Soy un administrador de Linux y no estoy familiarizado con las bases de datos, sería realmente útil si puedes explicar la consulta también.
Respuestas:
Más: http://winashwin.wordpress.com/2012/08/28/mysql-search/
fuente
En julio de 2012 escribí esta publicación
Consulta para buscar y reemplazar texto en todas las tablas y campos de una base de datos mysql
Utiliza la tabla information_schema.columns para seleccionar todos los campos CHAR, VARCHAR y TEXT y realizar un REEMPLAZO textual .
Revise mi enlace anterior y use su paradigma para hacer una búsqueda.
Como ejemplo, esto creará un SELECT separado para cada columna de texto en cada tabla
Cree un archivo de texto SQL gigante con él. Luego, ejecute ese script SQL gigante:
La salida le indica la base de datos, la tabla y la columna en la que aparecen los datos.
Darle una oportunidad !!!.
EDITAR:
DEBE: agregar los dos ticks posteriores que se muestran a continuación para las tablas que tienen un espacio en el nombre.
fuente
Tomando otro enfoque que no requiere la creación de consultas SQL, desarrollé CRGREP como una herramienta gratuita de línea de comandos de código abierto que codificará las bases de datos (incluido MySQL) y admite búsquedas simples de tipo "fred customer.name" para "fred" en el "nombre "columna de la tabla" cliente "para una coincidencia de patrones más compleja como" fr? d * .author "para la coincidencia de patrones con todas las columnas" autor "en todas las tablas.
fuente
Puede devolver todas las columnas de todas las tablas que coincidan con todos los valores que está buscando a la vez, basándose en la respuesta de RolandoMySQLDBA y utilizando
PREPARE
yEXECUTE
para ejecutar la consulta .fuente
Si puede usar un bash, aquí hay un script: necesita un usuario dbread con pass dbread en la base de datos.
Si alguien quiere una explicación: http://infofreund.de/?p=1670
fuente
Si es administrador de Linux, debe estar familiarizado con la línea de comandos, por lo que esta sería útil:
Cambie
root
/root
a sus credenciales de mysql (o uso~/.my.cnf
),db_name
a su nombre de base de datos yfoo
a su texto de búsqueda. El parámetro--skip-extended-insert
paramysqldump
mostrará cada consulta en líneas separadas. El parámetro--color=auto
paragrep
resaltará su cadena y-w
coincidirá con la palabra completa.fuente
¿Tienes acceso a phpMyAdmin? Tiene una función de búsqueda para cada base de datos.
o use la secuencia de comandos de su elección en el resultado de (cambiar dbname):
fuente
Me concentro en una solución de plantilla simple para su pregunta implementada en plsql para la base de datos Oracle , espero personalizarla en MySql, siendo simple lanzar googleing. todo lo que necesita es investigar el esquema de información en MySql y reemplazar algunos nombres de tabla y columnas.
En el script:
ALL_TAB_COLUMNS
es una tabla de esquema de información que contiene todas las columnas de tabla 'VARCHAR2', 'NVARCHAR2', 'NCHAR', 'CHAR' se refiere a los tipos de columna de cadena en Oracle, debe reemplazarlos con nombres de tipo equivalentes de MySql% hello% es la palabra clave de búsqueda reemplazarlo con cualquier cadena.
El resultado serán algunos o muchos scripts sql (basados en los tipos de columna de sus tablas) y ejecutarlos dará como resultado su respuesta.
También el rendimiento y el consumo de tiempo serán otros asuntos.
espero que esto sea útil
fuente
Hay una buena biblioteca para leer todas las tablas, ridona
fuente
Use este truco con una línea de código
nombre_columna: escriba el nombre de todas las columnas en las que busca.
nombre_tabla: escriba todo el nombre de la tabla en la que busca.
fuente
Si está utilizando MySQL Workbench, haga clic con el botón derecho en el esquema de la base de datos y seleccione "Buscar datos de tabla ..." y luego complete el formulario. Esto buscará en toda la base de datos. Cuando (o si) aparecen los resultados, haga clic en la flecha para expandir. Mostrará el esquema, la tabla, los datos de la clave principal, el nombre de la columna y los datos reales que coinciden con su búsqueda.
Consejo: Si no aparece nada, intente ampliar su búsqueda.
Tenga en cuenta que esto sólo es realmente útil para la búsqueda de texto (
char
,varchar
ytext
) tipos de datos.fuente