este es un par de querys curiosas que e desarrollado o visto...
multiplicar precios al buelo
tenemos una tabla con un campo precios y un campo tipo(euro, dolar, etc) y queremos que sin importar el tipo siempre nos de dolares, entonces necesitamos una tabla extra monedas{tipo,multiplicador}
Citar
select precio * multiplicador from tabla,monedas where moneda.tipo = tabla.tipo
conseguir el maximo o minimo sin usar max o min
Citar
min
select * from tabla not in ( select * from tabla, tabla as tabla2 where tabla.columna > tabla2.columna)
max
select * from tabla not in ( select * from tabla, tabla as tabla2 where tabla.columna < tabla2.columna)
select * from tabla not in ( select * from tabla, tabla as tabla2 where tabla.columna > tabla2.columna)
max
select * from tabla not in ( select * from tabla, tabla as tabla2 where tabla.columna < tabla2.columna)
edad al vuelo, util para tener siempe la edad exacta
Citar
select *, CASE
WHEN (MONTH(edad) < MONTH(current_date)) THEN YEAR(current_date) - YEAR(edad)
WHEN (MONTH(edad)) AND (DAY(edad) <= DAY(current_date)) THEN YEAR(current_date) - YEAR(edad)
ELSE (YEAR(current_date) - YEAR(edad)) - 1
END AS age
from usuario;
WHEN (MONTH(edad) < MONTH(current_date)) THEN YEAR(current_date) - YEAR(edad)
WHEN (MONTH(edad)) AND (DAY(edad) <= DAY(current_date)) THEN YEAR(current_date) - YEAR(edad)
ELSE (YEAR(current_date) - YEAR(edad)) - 1
END AS age
from usuario;
consulta random
Citar
SELECT * FROM tabla WHERE columna ORDER BY RAND() LIMIT 10;
cambiar pass masivo
Citar
update usuario set pass = md5(pass)
aportaciones? =P