Ignorer un préfixage
Résolu/Fermé5 réponses
Utilisateur anonyme
10 avril 2013 à 16:47
10 avril 2013 à 16:47
Salut salut,
Ta question m'intéresse, je ne sais pas s'il y a d'autre moyen (si qqun en a un?) mais on peut imaginer en SQL un première requête avec un REGEX qui parcours les noms de colonne ne retourne que celle respectant la REGEX (commançant par TE_) et ensuite retourner ce que ces colonnes contiennent :
Je me suis amusé sur mysql voir si on pouvait récup les noms de colonne avec une expression régulière.
Ta question m'intéresse, je ne sais pas s'il y a d'autre moyen (si qqun en a un?) mais on peut imaginer en SQL un première requête avec un REGEX qui parcours les noms de colonne ne retourne que celle respectant la REGEX (commançant par TE_) et ensuite retourner ce que ces colonnes contiennent :
Je me suis amusé sur mysql voir si on pouvait récup les noms de colonne avec une expression régulière.
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'test' AND (COLUMN_NAME REGEXP "^TE_.")
Utilisateur anonyme
12 avril 2013 à 11:19
12 avril 2013 à 11:19
je ne suis pas sur de bien comprendre ...
Tu souhaites récupérer des nom de colonnes et requeter par rapport à celles-ci ?
Si c'est bien ca, je ne pense pas que tu puisse le faire directement, mais il faudra passer par un langage de dev pour récupérer les valeurs et construire tes requêtes dynamiquements (car on te renvoi une chaine correspondant au nom de ta colonne, et non réellement ta colonne)
Tu souhaites récupérer des nom de colonnes et requeter par rapport à celles-ci ?
Si c'est bien ca, je ne pense pas que tu puisse le faire directement, mais il faudra passer par un langage de dev pour récupérer les valeurs et construire tes requêtes dynamiquements (car on te renvoi une chaine correspondant au nom de ta colonne, et non réellement ta colonne)
Utilisateur anonyme
10 avril 2013 à 17:02
10 avril 2013 à 17:02
L'info est interessante ^^ mais ce que je cherche à faire c'est un peu l'inverse en fait :
si je fais
je souhaiterai qu'il cherche le critere ayant pour nom 'UNCODE'
je sais que le principe existe dans les tables (mais j'arrive pas à mettre la main dessus nom plus), où justement tu as une requete qui appel la table T_TAB mais qu'en réalité ca interroge la table T_TAB_V2 (utilisé actuellement dans ma boite donc c'est bien qu'il y a une truc^^)
je continue de chercher de mon côté mais je suis preneur d'idées ;)
si je fais
SELECT * FROM T_CRITERES WHERE NOM_CRITERES='TE_UNCODE'
je souhaiterai qu'il cherche le critere ayant pour nom 'UNCODE'
je sais que le principe existe dans les tables (mais j'arrive pas à mettre la main dessus nom plus), où justement tu as une requete qui appel la table T_TAB mais qu'en réalité ca interroge la table T_TAB_V2 (utilisé actuellement dans ma boite donc c'est bien qu'il y a une truc^^)
je continue de chercher de mon côté mais je suis preneur d'idées ;)
Utilisateur anonyme
Modifié par nagashima le 11/04/2013 à 09:05
Modifié par nagashima le 11/04/2013 à 09:05
ah bah non en fait c'est parfais ! il me suffit de faire ma regex sur la column name et non la valeur recherché :
si j'ai dans ma table deux J_LIB :
ca me retoune bien les deux résultats =)
Bon par contre je pense qu'il faudra change l'expression de manière à ce que si j'ai 'COUNT' il ne ressorte pas mais je devrai m'en sortir ^^
merci
select * from JEUX where 'FR_COUNTER' REGEXP J_LIB
si j'ai dans ma table deux J_LIB :
counter fr_counter
ca me retoune bien les deux résultats =)
Bon par contre je pense qu'il faudra change l'expression de manière à ce que si j'ai 'COUNT' il ne ressorte pas mais je devrai m'en sortir ^^
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
12 avril 2013 à 10:30
12 avril 2013 à 10:30
Haha bien ;)
Llorsque j'ai fais le bout de requête je me demandais s'il était possible dans le cas où on ferais une jointure d'utiliser le retour de la requête avec la REGEX pour les utiliser comme nom de colonne.
Par ex : la requête nous retourne TE_col1, TE_col2 :
est ce qu'il est possible de continuer la requête sql en utilisant ces retours pour faire les conditions : WHERE "premier_retour"=1 , et "premier_retour" serait TE_col1.
Je sais pas si j'ai été très clair...
Llorsque j'ai fais le bout de requête je me demandais s'il était possible dans le cas où on ferais une jointure d'utiliser le retour de la requête avec la REGEX pour les utiliser comme nom de colonne.
Par ex : la requête nous retourne TE_col1, TE_col2 :
est ce qu'il est possible de continuer la requête sql en utilisant ces retours pour faire les conditions : WHERE "premier_retour"=1 , et "premier_retour" serait TE_col1.
Je sais pas si j'ai été très clair...