Quelques requêtes SQL

Dans le cadre de la migration de mes sites réalisés sous Artiphp vers WordPress, j’ai voulu conserver toutes les données. Je ne suis pas un pro dans le domaine, mais je m’y suis allé pas à pas. J’ai donc avancé doucement, en travaillant directement dans les tables SQL.
Cette page synthétise donc des requêtes utilisées dans ce cadre. Cette page me permet outre le fait de le partager, de les garder en mémoire.

Sur le principe, j’ai commencé par dupliquer mes tables une par une avant de les modifier pour reprendre la structure des tables WordPress.

Duplication d’une table.

CREATE TABLE wp_table LIKE arti_table;
INSERT INTO wp_table SELECT * FROM arti_table;

Sur le principe c’est très simple. On commence, avec la première ligne, par créer la nouvelle table « wp-table » à partir de la table « arti_table ». Ensuite, avec la seconde ligne, on copie toutes les données.

Concaténer deux colonnes d’une table dans une troisième

UPDATE wp_table 
SETcolonne_1 = CONCAT(colonne_2, ' ', colonne_3);

Renuméroter le champs ID

Pour renuméroter des lignes à partir de numéro existant (le numéro est augmenté de la valeur additionnée). Cette option est utile avant de fusionner deux tables de même structure avec des numéro d’ID communs. La valeur d’augmentation doit donc être supérieure à la valeur maxi de la première table.

UPDATE nom_table SET colonne_id = colonne_id + 1

Pour ernuméroté intégralement les ID, en repartant de 0, il suffit de supprimer les colonnes ID des tables à fusionner, des les fusionner et de recréer une colonne ID avec autoincrémentation des numéros d’ID.

ALTER TABLE nom_table ADD colonne_id BIGINT NOT NULL AUTO_INCREMENT primary key first

Remplacer une chaîne de caractère dans une colonne

UPDATE nom_table SET nom_colonne = replace(nom_colonne, 'texte-1', 'texte-2')

Pour remplacer le signe \, le doubler : \\ dans la partie texte1

Remplacer les valeurs de toute une colonne par une valeur unique

UPDATE nom_table
SET colonne = 'valeur'

Insertion d’une table 1 dans une table 2 identique

INSERT INTO table_2
SELECT * FROM table_1