Ceci est une ancienne révision du document !


MySQL

Général

Rechercher les doublons dans une table

SELECT DISTINCT *
FROM `table` t1
WHERE EXISTS (
    SELECT *
    FROM `table` t2
    WHERE t1.id <> t2.id
    AND   t1.champ1 = t2.champ1
)

Manipuler un champ binaire

UPDATE TABLE
SET FIELD = FIELD - 8
WHERE FIELD & 8 = 8

Dump

Exclure des tables

mysqldump <schema> --ignore-table=schema.table1

Exclure les données de tables

mysqldump <schema> --no-data > db-structure.sql
mysqldump <schema> --no-create-info --ignore-table=schema.table1 > db-data.sql
cat db-structure.sql > db-all.sql && cat db-data.sql >> db-all.sql

Supprimer les données d'une table dans un dump SQL

$ grep -n 'Table structure\|Dumping data for table' dump.sql 
19:-- Table structure for table `t1`
37:-- Dumping data for table `t1`
47:-- Table structure for table `t2`
66:-- Dumping data for table `t2`
76:-- Table structure for table `t3`
96:-- Dumping data for table `t3`

Pour supprimer les données de la table t2 :

$ sed '66,75 d' dump.sql > cleandump.sql

Divers

Construire un fichier CSV avec les résultats d'une requête

$ mysql -u user -p db < req.txt | sed 's/\t/;/g' > out.csv