Signe % dans un LIKE avec une colonne SQL
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.
Code:
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||',%') |
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.
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
Ce n'est pas le %, mais l'utilisation d'une colonne.
Bonjour,
ma DB n'est pas une my-SQL, mais elle ne permet pas non-plus de faire un like sur une colonne:
exemple:
Code:
1 2 3
|
select * from contact where nom like adresse
-> erreur |
Donc essaye avec d'autres fonction mySQL: les REGEXP ou FIND_IN_SET()
http://dev.mysql.com/doc/refman/5.0/...tor_not-regexp
Clairement, ce n'est pas une jointure et ce n'est jamais une architecture à faire (ce sont les raisons de ta migration?)