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 chevronné
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 865
    Points
    1 865
    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 éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

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

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

    Informations professionnelles :
    Activité : SRE

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

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    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 chevronné
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 865
    Points
    1 865
    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
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 960
    Points : 4 389
    Points
    4 389
    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 éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 485
    Points : 839
    Points
    839
    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 actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    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, 12h34
  2. Réponses: 4
    Dernier message: 16/02/2007, 18h14
  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, 11h37
  4. performance clause like / starting with
    Par KRis dans le forum SQL
    Réponses: 2
    Dernier message: 20/01/2006, 15h42
  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, 15h02

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