MYSQL requêtes particulières

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

Cette liste sera mise à jour régulièrement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *