sur une clé doublon HF on peut la rendre senssible ou non à la
ponctuation et donc si je fais une recherche comme suit :
données contenues dans le fichier HF :
ABC12345DEF
ABC 12345 DEF
recherche : ABC12345DEF
résultat :
ABC12345DEF
ABC 12345 DEF
je voulais savoir si il existait une chose similaire dans MySQL ?
je ne voudrais pas actuellement remplacé tous les codes sans espace par
des codes avec espace (nouveau format) car la découpe n'est pas
évidente
je peux très bien avoir : AB12CD
avant de me lancer dans la création d'une moulinette d'analyse de
caractère par caractère pour découper ma chaine selon le format :
Lettre (1 à N) Chiffre (1à N) Lettre (1 à N)
cela m'aurait arranger de savoir si je pouvais faire autrement.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Firetox
BOnjour,
MySQL sera sensible au espace de ton exemple et ne renvera qu'une ligne il existe sous mySQL la meme fonction que windev : REMPLACE nommée sous mySQL : REPLACE (a ne pas confondre avec l'ordre SQL REPLACE a la place de update ou insert)
et j'avoue l'utiliser dans le meme sens que windev sans aucun problemes surtout dans les where ou le select
bon dev @+
"JeAn-PhI" a écrit dans le message de news:4a6053f6$0$3408$
bonjour
sur une clé doublon HF on peut la rendre senssible ou non à la ponctuation et donc si je fais une recherche comme suit :
données contenues dans le fichier HF : ABC12345DEF ABC 12345 DEF
recherche : ABC12345DEF
résultat : ABC12345DEF ABC 12345 DEF
je voulais savoir si il existait une chose similaire dans MySQL ?
je ne voudrais pas actuellement remplacé tous les codes sans espace par des codes avec espace (nouveau format) car la découpe n'est pas évidente je peux très bien avoir : AB12CD
avant de me lancer dans la création d'une moulinette d'analyse de caractère par caractère pour découper ma chaine selon le format : Lettre (1 à N) Chiffre (1à N) Lettre (1 à N) cela m'aurait arranger de savoir si je pouvais faire autrement.
merci d'avance
-- Cordialement JeAn-PhI
BOnjour,
MySQL sera sensible au espace de ton exemple et ne renvera qu'une ligne
il existe sous mySQL la meme fonction que windev : REMPLACE nommée sous
mySQL : REPLACE
(a ne pas confondre avec l'ordre SQL REPLACE a la place de update ou insert)
et j'avoue l'utiliser dans le meme sens que windev sans aucun problemes
surtout dans les where ou le select
bon dev
@+
"JeAn-PhI" <nospam@nospam.fr> a écrit dans le message de
news:4a6053f6$0$3408$426a74cc@news.free.fr...
bonjour
sur une clé doublon HF on peut la rendre senssible ou non à la ponctuation
et donc si je fais une recherche comme suit :
données contenues dans le fichier HF :
ABC12345DEF
ABC 12345 DEF
recherche : ABC12345DEF
résultat :
ABC12345DEF
ABC 12345 DEF
je voulais savoir si il existait une chose similaire dans MySQL ?
je ne voudrais pas actuellement remplacé tous les codes sans espace par
des codes avec espace (nouveau format) car la découpe n'est pas évidente
je peux très bien avoir : AB12CD
avant de me lancer dans la création d'une moulinette d'analyse de
caractère par caractère pour découper ma chaine selon le format :
Lettre (1 à N) Chiffre (1à N) Lettre (1 à N)
cela m'aurait arranger de savoir si je pouvais faire autrement.
MySQL sera sensible au espace de ton exemple et ne renvera qu'une ligne il existe sous mySQL la meme fonction que windev : REMPLACE nommée sous mySQL : REPLACE (a ne pas confondre avec l'ordre SQL REPLACE a la place de update ou insert)
et j'avoue l'utiliser dans le meme sens que windev sans aucun problemes surtout dans les where ou le select
bon dev @+
"JeAn-PhI" a écrit dans le message de news:4a6053f6$0$3408$
bonjour
sur une clé doublon HF on peut la rendre senssible ou non à la ponctuation et donc si je fais une recherche comme suit :
données contenues dans le fichier HF : ABC12345DEF ABC 12345 DEF
recherche : ABC12345DEF
résultat : ABC12345DEF ABC 12345 DEF
je voulais savoir si il existait une chose similaire dans MySQL ?
je ne voudrais pas actuellement remplacé tous les codes sans espace par des codes avec espace (nouveau format) car la découpe n'est pas évidente je peux très bien avoir : AB12CD
avant de me lancer dans la création d'une moulinette d'analyse de caractère par caractère pour découper ma chaine selon le format : Lettre (1 à N) Chiffre (1à N) Lettre (1 à N) cela m'aurait arranger de savoir si je pouvais faire autrement.
merci d'avance
-- Cordialement JeAn-PhI
JeAn-PhI
Firetox avait prétendu :
BOnjour,
MySQL sera sensible au espace de ton exemple et ne renvera qu'une ligne
oui effectivement
il existe sous mySQL la meme fonction que windev : REMPLACE nommée sous mySQL : REPLACE
ok mais je ne vois pas comment il va trouver tous les résultats select * from table where ????
(a ne pas confondre avec l'ordre SQL REPLACE a la place de update ou insert)
et j'avoue l'utiliser dans le meme sens que windev sans aucun problemes surtout dans les where ou le select
bon dev @+
-- Cordialement JeAn-PhI
Jerome PAULIN
Salut,
select * from latable where replace(champ,' ','')=replace(valeur,' ','')
Attention, ca n'utilisera surement pas les index ... personnellement, je créerai une colonne avec le champ "nettoyé" pour pouvoir utiliser les indexes.
gg
Salut,
select * from latable where replace(champ,' ','')=replace(valeur,' ','')
Attention, ca n'utilisera surement pas les index ... personnellement, je
créerai une colonne avec le champ "nettoyé" pour pouvoir utiliser les
indexes.
select * from latable where replace(champ,' ','')=replace(valeur,' ','')
Attention, ca n'utilisera surement pas les index ... personnellement, je créerai une colonne avec le champ "nettoyé" pour pouvoir utiliser les indexes.
gg
JeAn-PhI
Jerome PAULIN a exprimé avec précision :
Salut,
select * from latable where replace(champ,' ','')=replace(valeur,' ','')
Attention, ca n'utilisera surement pas les index ... personnellement, je créerai une colonne avec le champ "nettoyé" pour pouvoir utiliser les indexes.
gg
effectivement en faisant un explain j'obtiens un type "ALL" non "ref" avec un temps proche d'une demi seconde avec replace contre "instantané" sur une table de 88 000 enreg
je crois que je vais être obligé de créer une moulinette pour mettre à jour le champ de la table
merci
-- Cordialement JeAn-PhI
Jerome PAULIN a exprimé avec précision :
Salut,
select * from latable where replace(champ,' ','')=replace(valeur,' ','')
Attention, ca n'utilisera surement pas les index ... personnellement, je
créerai une colonne avec le champ "nettoyé" pour pouvoir utiliser les
indexes.
gg
effectivement en faisant un explain j'obtiens un type "ALL" non "ref"
avec un temps proche d'une demi seconde avec replace contre
"instantané" sur une table de 88 000 enreg
je crois que je vais être obligé de créer une moulinette pour mettre à
jour le champ de la table
select * from latable where replace(champ,' ','')=replace(valeur,' ','')
Attention, ca n'utilisera surement pas les index ... personnellement, je créerai une colonne avec le champ "nettoyé" pour pouvoir utiliser les indexes.
gg
effectivement en faisant un explain j'obtiens un type "ALL" non "ref" avec un temps proche d'une demi seconde avec replace contre "instantané" sur une table de 88 000 enreg
je crois que je vais être obligé de créer une moulinette pour mettre à jour le champ de la table
merci
-- Cordialement JeAn-PhI
Gilles
Dans son message précédent, JeAn-PhI a écrit :
bonjour
sur une clé doublon HF on peut la rendre senssible ou non à la ponctuation et donc si je fais une recherche comme suit :
données contenues dans le fichier HF : ABC12345DEF ABC 12345 DEF
recherche : ABC12345DEF
résultat : ABC12345DEF ABC 12345 DEF
je voulais savoir si il existait une chose similaire dans MySQL ?
je ne voudrais pas actuellement remplacé tous les codes sans espace par des codes avec espace (nouveau format) car la découpe n'est pas évidente je peux très bien avoir : AB12CD
avant de me lancer dans la création d'une moulinette d'analyse de caractère par caractère pour découper ma chaine selon le format : Lettre (1 à N) Chiffre (1à N) Lettre (1 à N) cela m'aurait arranger de savoir si je pouvais faire autrement.
merci d'avance
Tu n'as qu'à faire un peu de redonance de donnée. Tu stockes une version sans espace ni ponctuation dans une nouvelle colonne, et tu pourras faire tes recherches sur cette colonne après avoir fait de même dans ton code.
Dans son message précédent, JeAn-PhI a écrit :
bonjour
sur une clé doublon HF on peut la rendre senssible ou non à la ponctuation et
donc si je fais une recherche comme suit :
données contenues dans le fichier HF :
ABC12345DEF
ABC 12345 DEF
recherche : ABC12345DEF
résultat :
ABC12345DEF
ABC 12345 DEF
je voulais savoir si il existait une chose similaire dans MySQL ?
je ne voudrais pas actuellement remplacé tous les codes sans espace par des
codes avec espace (nouveau format) car la découpe n'est pas évidente
je peux très bien avoir : AB12CD
avant de me lancer dans la création d'une moulinette d'analyse de caractère
par caractère pour découper ma chaine selon le format :
Lettre (1 à N) Chiffre (1à N) Lettre (1 à N)
cela m'aurait arranger de savoir si je pouvais faire autrement.
merci d'avance
Tu n'as qu'à faire un peu de redonance de donnée.
Tu stockes une version sans espace ni ponctuation dans une nouvelle
colonne, et tu pourras faire tes recherches sur cette colonne après
avoir fait de même dans ton code.
sur une clé doublon HF on peut la rendre senssible ou non à la ponctuation et donc si je fais une recherche comme suit :
données contenues dans le fichier HF : ABC12345DEF ABC 12345 DEF
recherche : ABC12345DEF
résultat : ABC12345DEF ABC 12345 DEF
je voulais savoir si il existait une chose similaire dans MySQL ?
je ne voudrais pas actuellement remplacé tous les codes sans espace par des codes avec espace (nouveau format) car la découpe n'est pas évidente je peux très bien avoir : AB12CD
avant de me lancer dans la création d'une moulinette d'analyse de caractère par caractère pour découper ma chaine selon le format : Lettre (1 à N) Chiffre (1à N) Lettre (1 à N) cela m'aurait arranger de savoir si je pouvais faire autrement.
merci d'avance
Tu n'as qu'à faire un peu de redonance de donnée. Tu stockes une version sans espace ni ponctuation dans une nouvelle colonne, et tu pourras faire tes recherches sur cette colonne après avoir fait de même dans ton code.
Gilles
Firetox avait prétendu :
BOnjour,
MySQL sera sensible au espace de ton exemple et ne renvera qu'une ligne il existe sous mySQL la meme fonction que windev : REMPLACE nommée sous mySQL : REPLACE (a ne pas confondre avec l'ordre SQL REPLACE a la place de update ou insert)
et j'avoue l'utiliser dans le meme sens que windev sans aucun problemes surtout dans les where ou le select
Quid des index avec un replace? Je ne m'avancerai pas beaucoup en pensant qu'ils sont inutilisés quand on utilise une fonction.
Sur des tables volumineuses, ca peut faire mal...
Firetox avait prétendu :
BOnjour,
MySQL sera sensible au espace de ton exemple et ne renvera qu'une ligne
il existe sous mySQL la meme fonction que windev : REMPLACE nommée sous mySQL :
REPLACE
(a ne pas confondre avec l'ordre SQL REPLACE a la place de update ou insert)
et j'avoue l'utiliser dans le meme sens que windev sans aucun problemes
surtout dans les where ou le select
Quid des index avec un replace?
Je ne m'avancerai pas beaucoup en pensant qu'ils sont inutilisés quand
on utilise une fonction.
MySQL sera sensible au espace de ton exemple et ne renvera qu'une ligne il existe sous mySQL la meme fonction que windev : REMPLACE nommée sous mySQL : REPLACE (a ne pas confondre avec l'ordre SQL REPLACE a la place de update ou insert)
et j'avoue l'utiliser dans le meme sens que windev sans aucun problemes surtout dans les where ou le select
Quid des index avec un replace? Je ne m'avancerai pas beaucoup en pensant qu'ils sont inutilisés quand on utilise une fonction.
Sur des tables volumineuses, ca peut faire mal...
Firetox
Bonjour,
effectivement en faisant un explain j'obtiens un type "ALL" non "ref" avec un temps proche d'une demi seconde avec replace contre "instantané" sur une table de 88 000 enreg
et avec un order sur la colonne sans le replace (histoire de grugé un peu l'index)
que donne l'explain ?
Bonjour,
effectivement en faisant un explain j'obtiens un type "ALL" non "ref"
avec un temps proche d'une demi seconde avec replace contre "instantané"
sur une table de 88 000 enreg
et avec un order sur la colonne sans le replace
(histoire de grugé un peu l'index)
effectivement en faisant un explain j'obtiens un type "ALL" non "ref" avec un temps proche d'une demi seconde avec replace contre "instantané" sur une table de 88 000 enreg
et avec un order sur la colonne sans le replace (histoire de grugé un peu l'index)
que donne l'explain ?
JeAn-PhI
Le 17/07/2009, Firetox a supposé :
Bonjour,
effectivement en faisant un explain j'obtiens un type "ALL" non "ref" avec un temps proche d'une demi seconde avec replace contre "instantané" sur une table de 88 000 enreg
et avec un order sur la colonne sans le replace (histoire de grugé un peu l'index)
que donne l'explain ?
il devient de type "index" ce qui est bien mieux que "ALL" mais moins bien que "ref" par contre le temps reste le même environ un demi seconde
-- Cordialement JeAn-PhI
Le 17/07/2009, Firetox a supposé :
Bonjour,
effectivement en faisant un explain j'obtiens un type "ALL" non "ref"
avec un temps proche d'une demi seconde avec replace contre "instantané"
sur une table de 88 000 enreg
et avec un order sur la colonne sans le replace
(histoire de grugé un peu l'index)
que donne l'explain ?
il devient de type "index" ce qui est bien mieux que "ALL" mais moins
bien que "ref" par contre le temps reste le même environ un demi
seconde
effectivement en faisant un explain j'obtiens un type "ALL" non "ref" avec un temps proche d'une demi seconde avec replace contre "instantané" sur une table de 88 000 enreg
et avec un order sur la colonne sans le replace (histoire de grugé un peu l'index)
que donne l'explain ?
il devient de type "index" ce qui est bien mieux que "ALL" mais moins bien que "ref" par contre le temps reste le même environ un demi seconde