bueno, aver si me siguen el juego..
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}
Citarselect precio * multiplicador from tabla,monedas where moneda.tipo = tabla.tipo
conseguir el maximo o minimo sin usar max o min
Citarmin
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
Citarselect *, 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;
consulta random
CitarSELECT * FROM tabla WHERE columna ORDER BY RAND() LIMIT 10;
cambiar pass masivo
Citarupdate usuario set pass = md5(pass)
aportaciones? =P
La de random es muy util no la conocia...gracias!!
Citarmultiplicar precios al vuelo
:-X
Saludos! ;D
Y que tiene de curiosas esas query's?
para uno que sabe le son normales...
pero cuando vas comenzando lo normal es creer que sql solo es para almacenar datos, y ni te imaginas que puedes hacer operaciones y otras cosas...
y al desconocer de ellas lo normal es querer implementarlas sobre el lenguaje de programación que usamos..
yo lo postie con la intencion de ver que trucos me pueden compartir...
"y para ver los colores de alguien primero debes mostrar tus colores"
mmm :huh:
Buena info :D
Y luego descubrirá los campos calculados y las funciones como datediff :D (por ejemplo para mantener la edad actualizada ;))
Saludos
esta deberia dar la edad sin tanta vuelta xD (solo mysql ¬¬)
SELECT TIMESTAMPDIFF(YEAR, fecha_nac, NOW()))
A eso iba :xD
Ms SQL
SELECT DATEDIFF(YEAR,fecha_nac,GETDATE())
Saludos