Table des matières

Exemples pratiques

Suppression d'enregistrements doublons

Objectif : supprimer les enregistrements doublons d'une table “métier”. Exemple : considérons la table test.

DELETE t1
FROM test as t1, test as t2
WHERE  t1.DIR1 = t2.DIR1
AND t1.FILENAME = t2.FILENAME
AND t1.ID != t2.ID

Nb: il est recommandé de nettoyer les tables _docpak et _fsfile (notamment) à l'aide du script nettoyertablesystemes.py

C:\>python <chemin vers répertoire des scripts>\nettoyertablesystemes.py instance 1 1

Plus de précisions sur la suppression dans MySQL 4.1 peut être trouvée sur la doc officielle.

Remplacement d'une chaîne de caractères par une autre.

REPLACE(chaine,sous-chaine-a-replacer,chaine-de-remplacemnt)

Exemple : La table facture a un champ facture_NOM. On souhaite remplacer tous les enregistrements où le champ contient “GROUPEME T”, c'est-à-dire GROUPEME suivit d'un espace suivit d'un T puis d'un nombre quelconque d'autres caractères éventuellement, par « GROUPEMENT ». On veut remplacer l'espace par un N. Voici la requête à utiliser :

UPDATE facture SET facture_NOM = REPLACE(facture_NOM,  "GROUPEME ", "GROUPEMEN") WHERE facture_NOM LIKE "GROUPEME %"

Si GROUPEME ne se trouve pas au début de la chaîne faites LIKE “%GROUPEME %”

% est un caractère joker, il remplace n'importe quel caractère présent 0 ou plusieurs fois.

Extractions de chaîne

Dans un champ dont la valeur est de la forme Un nom “Une chaine que l'on veut supprimer on souhaite ne récupérer que Un nom

Exemple :

Pour

Gratien Thvernizzi" /o.First Organization/ou=Exch

On veut obtenir

Gratien Thvernizzi

Voici la requête a exécuter :

SELECT **CHAMP**,REPLACE(SUBSTRING(**CHAMP**,1,LOCATE('"',**CHAMP**,2)-2),'"','') FROM **TABLE**

Condition sur échéance

CURDATE() : retourne la date courante.

Exemple de condition à utiliser pour n'afficher que les enregistrements dont la date d'échéance arrive à terme dans les 30 prochains jours :

WHERE DATE_ECHEANCE < DATE_ADD( CURDATE(), INTERVAL 30 DAY)  

Exemple dans 4 mois

WHERE DATE_ECHEANCE < DATE_ADD( CURDATE(), INTERVAL 4 MONTH)