IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Starting With : Possible ?


Sujet :

PostgreSQL

  1. #1
    Membre extrêmement actif
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 549
    Par défaut Starting With : Possible ?
    Salut !
    je voudrais savoir si il est possible d'utiliser "starting with" dans les requetes postgresql pour trouver a partir des premieres lettre d'un string ?
    je ne veut PAS utiliser de methode lente comme like
    par exemple sous Firebird on peut faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from TESTE1
        where TEXTE starting with 'abcd'
    c'est possible de faire quelque chose dans le meme genre ?
    merci

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    bonjour, tu peux essayer :
    SELECT * FROM TESTE1
    WHERE substring(TEXTE from 1 for 5)= 'abcd'

  3. #3
    Membre extrêmement actif
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 549
    Par défaut
    et si je connais pas la longueur de la chaine ? :p

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Par défaut
    dans postgresql tu peux utiliser les opérateurs like et match:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM TESTE1 WHERE TEXTE starting like 'abcd%';
    SELECT * FROM TESTE1 WHERE TEXTE starting ~* '^abcd';

  5. #5
    Membre extrêmement actif
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 549
    Par défaut
    oui mais j'ai entendu dire que c'etait treeees lent (non utilisation des index)
    si non , tes requetes marche pas (il reconnais pas starting)

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 962
    Par défaut
    Citation Envoyé par kedare
    oui mais j'ai entendu dire que c'etait treeees lent (non utilisation des index)
    si non , tes requetes marche pas (il reconnais pas starting)
    like peut utiliser les index si le % n'est pas en tête de pattern…
    (si ce qui sera votre cas…)
    + quelques autres conditions expliquées dans la doc et la FAQ Postgre…

    http://www.postgresql.org/docs/faqs.FAQ_french.html

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    Citation Envoyé par kedare
    et si je connais pas la longueur de la chaine ? :p
    SELECT * FROM TESTE1
    WHERE substring(TEXTE from 1 for char_length(var))= var

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Par défaut
    autant pour moi, il faut que je fasse plus gaffe au copie coller le code etait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM TESTE1 WHERE TEXTE LIKE 'abcd%';
    SELECT * FROM TESTE1 WHERE TEXTE ~* '^abcd';
    sinon pour ce qui est de la lenteur, je ne suis pas spécialiste dans l'optimisation des requêtes, mais j'utilise ce genre de requêtes sur des jointures comportant des tables pouvant aller jusqu'à 400000 enregistrements avec des index sur les colonnes où chercher l'enregistrement, le résultat est rapide.

Discussions similaires

  1. [XPath] où mettre [start-with(name(),"w:tc"]
    Par loic_86 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 07/03/2007, 11h34
  2. Réponses: 4
    Dernier message: 16/02/2007, 17h14
  3. [XPath][MSXML] starts-with renvoie méthode inconnue
    Par MrMaze dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/02/2007, 10h37
  4. performance clause like / starting with
    Par KRis dans le forum SQL
    Réponses: 2
    Dernier message: 20/01/2006, 14h42
  5. quel équivalent de start with...connect by prior en DB?
    Par Mittou dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/10/2005, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo