Bonjour
je suis en train de faire une requête SQL de migration de données(enfin de récupération de données) et j'ai un petit soucis.
Mes LIKE sont la parce que dans l'ancienne table, on avait un joli champ a virgules et que l'on a décidé de passer à quelque chose de plus utilisable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 SELECT D.Id_document, Liste_utilisateurs, Id_categorie FROM GED_diffusion_20080331_154140 D LEFT JOIN GED_diffusion_emargement DE ON DE.Id_document = D.Id_document AND DE.Type_categorie = 'utilisateurs' WHERE D.Id_document>0 AND D.Liste_utilisateurs IS NOT NULL AND D.Liste_utilisateurs <>'' AND D.Id_document = 11392 AND Liste_utilisateurs NOT LIKE DE.Id_categorie AND Liste_utilisateurs NOT LIKE (DE.Id_categorie||',%') AND Liste_utilisateurs NOT LIKE ('%,'||DE.Id_categorie) AND Liste_utilisateurs NOT LIKE ('%,'||DE.Id_categorie||',%')
Il faut savoir que le but de cette requête est d'avoir tous les documents et leur liste d'utilisateurs qui ne sont pas déjà dans la nouvelle table(si les clients déjà migré ont déjà touché leurs données)
Le problème est que le signe % que je veux utiliser comme dans un LIKE simple ne semble pas vouloir s'assembler avec une colonne mysql.
Une idée de la syntaxe a faire ?
(ca représente des centaines de milliers de lignes, d'ou mon envie de ne récupérer qu les données a insérer dans ma requète)
Un distinct ou un group by est prévu dans cette requete pour n'avoir qu'une occurrence de la liste.
Merci
Pierre
Partager