SELECT con 2 counts en MySQL

En este post te mostraré cómo hacer un select con group by pero además contar dos columnas distintas, es decir, hacer una consulta en MySQL usando dos counts (count).

Para ello vamos a usar la función sum pero además usaremos case. De este modo, por ejemplo, podremos contar el total de datos distintos de una columna dependiendo de su valor.

(más…)

Laravel: cambiar tipo de dato en migración

En este post sobre Laravel y SQL te voy a mostrar cómo cambiar el tipo de dato de una columna en la tabla, usando una migración de Laravel para evitar hacerlo manualmente. De este modo llevamos un control de versiones de la base de datos.

El ejemplo que te mostraré para cambiar el tipo de dato de una columna en Laravel no usa la dependencia dbal, de hecho no usa ninguna dependencia extra, pues utiliza una sentencia propia de SQL.

(más…)

Laravel: obtener SQL generado por ORM

En este post te mostraré cómo obtener el código SQL que Laravel ejecuta al usar el ORM. Es decir, obtener el SQL generado por Eloquent. Por ejemplo, si tú haces un DB::table("productos")->all(); te mostraré cómo obtener la consulta generada que sería SELECT * FROM productos.

Todo esto que te menciono es útil al depurar, pues así puedes ver si te estás equivocando en algún método. Además, también sirve para aprender Laravel, pues se puede observar cómo es que los métodos modifican a la consulta interna.

(más…)

Agregar columna llave foránea (fk) en MySQL

Resumen: en este post te muestro cómo modificar o alterar una tabla de MySQL para agregar una columna y hacer que esa columna sea una clave foránea.

Las relaciones en MySQL son importantes para tener datos en distintas tablas y no caer en la redundancia de campos. En ocasiones vamos a necesitar agregar una clave foránea a una tabla ya existente.

(más…)

Por parzibyte, hace
Insertar si no existe en SQL

SQL – Insertar fila si no existe usando WHERE

En este tutorial de SQL te mostraré cómo insertar datos a una tabla solo si el dato no existe, es decir, insertar un dato únicamente una vez usando una subconsulta y WHERE.

Este tutorial aplica para SQL en general, es decir, debería funcionar en cualquier motor, pero solo he podido probarlo en MySQL y SQLite 3.

Nota: no olvides que REPLACE INTO e INSERT IGNORE (o INSERT OR IGNORE) tienen similitudes con este método.

(más…)

Por parzibyte, hace
6 - Leer código de barras de paquete con cámara en App de entregas

App de entregas Android con sincronización web y GPS

En este post te mostraré una app de entrega de paquetes para Android que programé hace algún tiempo en Java, la cual sirve para dar seguimiento a entregas de paquetes o pedidos, sincronizada con un servidor para bajar y subir las entregas pendientes en cada terminal.

Se puede decir que es, a baja escala, algo similar a lo que hace DHL, Estafeta o esos servicios que entregan paquetes (no sé bien el nombre de ese campo).

La información se guarda en una base de datos SQLite local, y posteriormente se envía a un servidor para sincronizarse.

Para llevar un seguimiento de los paquetes se escanea el código de barras usando la cámara del teléfono inteligente, o escribiendo el código manualmente.

(más…)

Por parzibyte, hace