anotaciones que no quiero recordar, ni olvidar

me

MySQL

MySQL restar o sumar horas, dias o minutos, de forma elegante

Ratio: 3 / 5

Iniciar activoIniciar activoIniciar activoInicio inactivoInicio inactivo

Suma:

Mostrar/Ocultar código mysql

Resta:

Mostrar/Ocultar código mysql

Cómo ejecutar consultas de MySQL directamente en la consola

Ratio: 0 / 5

Inicio inactivoInicio inactivoInicio inactivoInicio inactivoInicio inactivo

Y no hablo de conectar con consola, hablo de ejectuar las consultas en una sola linea, de modo que podamos por ejemplo crear una tarea cron. Y para muestra un botón:

Mostrar/Ocultar código bash

Ver código
mysql -u usuario -p contraseña -D nombre_base_datos -e 'DELETE FROM mi_tabla
WHERE condicional'

Sin poner la contraseña:

Mostrar/Ocultar código bash

Ver código
mysql -u admin -p`cat /etc/psa/.psa.shadow` -D nombre_base_datos -e 'DELETE FROM mi_tabla
WHERE condicional'

Actualizar una tabla con el contenido de otra tabla

Ratio: 0 / 5

Inicio inactivoInicio inactivoInicio inactivoInicio inactivoInicio inactivo

Sencillo, con INNER JOIN:

Mostrar/Ocultar código mysql

Ver código
UPDATE tabla_destino
INNER JOIN tabla_origen
ON tabla_origen.id_del_registro=tabladestino.id_del_registro
SET tabla_destino.campo=tabla_origen.campo;

Duplicar el contenido de una tabla

Ratio: 0 / 5

Inicio inactivoInicio inactivoInicio inactivoInicio inactivoInicio inactivo

Mostrar/Ocultar código mysql

Ver código
INSERT INTO `tabla_de_destino`
SELECT *
FROM `tabla_origen`
GROUP BY `sefurl`
HAVING Count(*)=1; 

En este caso estoy copiando el contenido que se repite, o sea registros duplicados.
Evidentemente las clausulas GROUP, WHERE, etc podemos omitirlas o cambiarlas. Y bueno el numero de columnas y orden debe ser el mismo. a menos claro está que en el select pongamos las columnas de la tabla de destino, si tuviese menos. ;)

Consola linux: ver el vivo las consultas y procesos de MYSQL

Ratio: 0 / 5

Inicio inactivoInicio inactivoInicio inactivoInicio inactivoInicio inactivo

Escirbir en la consola el siguiente comando, tan sólo hay que cambiar las palabras USUARIO y PASSWORD:

watch --interval=3 "mysql -h127.0.0.1 -P3306 -uUSUARIO -pPASSWORD -e 'show processlist'"