Dans le cadre de mes développements j’ai régulièrement des requêtes mysql particulières à faire. Vous trouverez sur cette page une petit résumé de mes recherches
Selectionner un champ date par rapport à une année
Il convient d’utiliser la fonction YEAR déclinable avec MONTH
Solution :
SELECT count(id_element), date_format(date_depot, '%d/%m/%Y') FROM element WHERE YEAR(date_depot) = 2010 GROUP BY date_depot
Selection CHAMP type DATE/DATETIME par rapport à l'année
Faire un tri défini manuellement
Solution :Solution :
SELECT mon_champ1, mon_champ2, mon_champ3
FROM (`ma_db`.`ma_table`)
WHERE `mon_champ1` = '1337'
ORDER BY
CASE mon_champ2
WHEN 'e' THEN 1
WHEN 'v' THEN 2
WHEN 's' THEN 3
END
Trier sans ASC / DESC
Trouver tous les enregistrements dont la colone nom commence par une lettre comprise en A et C .
Solution :
SELECT [left|right](monchamp, 2) FROM `matable` WHERE nom REGEXP '^[A-C]'
Utiliser les REGEXP dans les requêtes mysql
Ne prendre que X charactères de la valeur
Solution :
SELECT [left|right](monchamp, 2) FROM `matable` WHERE nom REGEXP '^[A-C]'
limiter à un certain nombre de caractères
2 étant me nombre de caractères souhaités
Dupliquer un enregistrement dans la base
Solution :
INSERT INTO users( champ1, champ2, champ3, champ4 )
SELECT champ1, champ2, champ3, champ4
FROM maTable
WHERE id = 2
Dupliquer un tuple
Il faut prendre tous les champs souhaités sauf bien évidamment la Primary Key si celle ci est en incrémentation auto