MySQL
Publicado el Domingo, 12 Marzo 2017 14:40
Actualizado el Domingo, 12 Marzo 2017 14:40

Realizando el proyecto catalogos, necesito poder crear una consulta donde me cambie el valor de una columna en unas determinadas filas.

Lo que tengo montado hasta ahora es un array con las consultas.

$consulta[$i] = 'UPDATE referenciascruzadas SET Estado ="'.$Estado.'" WHERE RecambioID ='.$Encontrado['RecambioID'].' AND IdFabricaCruzado ='.$Encontrado['IdFabricaCruzado'].' AND Ref_Fabricante ="'.$Encontrado['Ref_Fabricante'].'"';

Pero esto implica que si tengo un array con 200 elementos, implica que haga 200 peticiones al servidor msqyl, que considero que es innecesario, ya que no necesito saber si fue correcta o no la actualización.

Bueno el código completo es el siguiente

foreach ( $ArrayEncontrados as $Encontrado) { $i++; if ($Encontrado['Buscado'] =='NoEncontrado') { $Estado = 'Nuevo'; } else { $Estado = 'Existe Referencia Cruzada'; } $consulta[$i] = 'UPDATE referenciascruzadas SET Estado ="'.$Estado.'" WHERE RecambioID ='.$Encontrado['RecambioID'].' AND IdFabricaCruzado ='.$Encontrado['IdFabricaCruzado'].' AND Ref_Fabricante ="'.$Encontrado['Ref_Fabricante'].'"'; }

Publicado el Sábado, 30 Julio 2016 13:27
Actualizado el Sábado, 26 Noviembre 2016 00:48

La mayoria de estos comando son ejecutables de phpmyadmin

COMANDO PARA CONTAR EN UN CAMPO LOS VALORES DISTINTOS.

Imagina que tienes un campo con los nombres  y quieres saber cuantos nombres diferentes hay.

SELECT count(DISTINCT `NombreCampo`) as variable FROM `NombreTabla`

Imagina que tarifa de precios con los siguiente campos:ReferenciaProducto, ReferenciaFamilia, IdCliente, Precio. Hay que tener en cuenta que las ReferenciasProductos pueden estaŕan duplicada ya que tenemos un precio para cada cliente.

Ahora queremos saber cuantos productos hay en cada familia en esta tabla, no da igual que tengan precios distintos, solo queremos saber el numero de productos en cada familia.

SELECT count(DISTINCT `NombreCampo`) as variable FROM `NombreTabla` where `ReferenciaFamilia`= FAMILIAQUEREMOSSABER

Otras consultas interesantes:

UPDATE 'referenciascruzadas' SET REPLACE('Estado',"ERROR[Referencia Principal]","");

UPDATE 'referenciascruzadas' SET 'Estado'= REPLACE('Estado',"ERR:[FABRICANTE cruzado no existe]","")

UPDATE 'referenciascruzadas' SET 'Estado'=REPLACE('Estado',"ERR:[CampoVacio]","")

Tienes la necesidad de copiar los datos de una tabla en otra de otra BD

INSERT INTO `NUEVA-BASEDATOS`.`TABLA-NUEVA` SELECT * FROM `BASEDATOS`.`TABLAQUEREMOSCOPIARDATOSo`

Recordar que la estructura tiene que ser la misma

Publicado el Lunes, 14 Septiembre 2015 11:05
Actualizado el Lunes, 14 Septiembre 2015 11:35

Dbf (Data Base File) es formato simple para almacenar datos estructurados, utilizado por Dbase, Paradox, Clipper, FoxPro y seguro que nos olvidamos de alguno más.

Por esto, puede que os surja la necesidad de convertir esas tablas en una tabla de mysql, por ello en esta entrada vamos a ver las opciones que utilizamos.

DESDE LA PROPIA CONSOLA DE LINUX:

Desde la propia terminal de linux es bastante sencillo, solo necesitamos dbf2mysql.

Utilizando dfb2mysql, instalando en UBUNTU

sudo apt-get install dbf2mysql

Una vez lo tengamos instalado , solo tenemos que crear la BD en mysql, y luego con la siguiente instruccion:

dbf2mysql -h [SERVIDOR] -U [USUARIO] -P [CONTRASEÑA] -d [BASEDATOS] -t [NOMBRETABAL] -c -f /path/del/fichero/nombrefichero.dbf

No es un proceso rápido y por lo que la duración del proceso puede ser largo ya que depende de los registros y lo pesada que sea la tabla, como referencia os indico que:

" Duro un par de horas el importar una tabla 250.000 registros en servidor local "

Con esto, os digo que toca esperar a que termine el comando en la terminal antes de cerrarlo , ya que sino vuestra tabla puede que no este completa.

También debemos tener en cuenta que hay atributos que no tendrá en cuenta y uno ellos el auto incremento, por lo que deberemos modificar nosotros la estructura de el campo en cuestion.

Referencia:

Blog de manel perez

Github un proyecto con modificaciones dbf2mysql

 

Publicado el Miércoles, 12 Noviembre 2014 23:52
Actualizado el Miércoles, 10 Diciembre 2014 13:18

Teniendo en cuenta que tienes que ser administrador del equipo y la versió MYSQL que tengo es 5.5.40-0ubuntu0.12.04.1 encontre la siguiente web donde lo explica muy bien.

Lo repito por ecapy.com se les da por quitar el post o otros.

Paramos el servidor:

sudo service mysql stop

Arrancamos “mysqld_safe”:

sudo mysqld_safe --skip-grant-tables

Dejamos esa consola con “mysqld_safe” corriendo. Abramos otra consola y hagamos lo siguiente:

sudo mysql -u root