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

Langage SQL Discussion :

simple : comment dire !regexp


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut simple : comment dire !regexp
    bonjour,
    j'ai consulté la faq mysql et sql
    et je reste sans reponse.
    quel est la syntaxe pour dire where !regexp ?
    voici ce que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE masked!REGEXP '($var)'
    mais ca ne fonctionne pas.
    merci d'avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    apres etre aller faire un tour du coté des cours SQL ( le SQL de a-z )
    j'ai vu que le signe ! a la syntaxe suivante mais ma bdd ne me retourne aucun enregistrement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT*FROM table
    WHERE nonaffiche 
    NOT REGEXP '^(.*)?($moi)+(.*)?$' ORDER BY date DESC

  3. #3
    Membre averti Avatar de Cerberes
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 328
    Points : 338
    Points
    338
    Par défaut Re: simple : comment dire !regexp
    Citation Envoyé par Necron
    quel est la syntaxe pour dire where !regexp ?


    Qu'enteds-tu par ! ???
    Et regexp, c'est quoi?
    Citation Envoyé par Necron
    mais ca ne fonctionne pas.
    Message d'erreur?

    Si par ! tu veux dire différent, essaie <>
    Merci d'éviter les UP et autres messages inutiles!
    Modérateur Informatique Générale (même si je me mets au Delphi)
    N'oubliez pas les règles!
    Mon adresse e-mail

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    ben en fait regexp c'est une expression reguliere posix
    mais je croyais que regexp faisait parti du SQL
    c'est peut-etre propre a la bdd mysql
    de toute facon je fait plus avec regexp et maintenat je fais comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT*FROM table 
    WHERE nonaffiche 
    NOT LIKE '#$moi#' ORDER BY date DESC
    mais toujours zero enregistrement retournés ? ( sans message d'erreur )
    pourtant je crois avoir fait comme dans les cours sql ( le cour sql de A a Z )je vais aller le relire plus en details si êrsonne trouve mon erreur ( vais le lire meme si on trouve mon erreur j'en ai besoin )

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    pourquoi ne pas poster directement dans le forum du sgbd sur lequel tu travailles :

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    je pensais que ça concernait le SQL en particulier mais je viens de lire ce qu'a dit cerberes 2 topic plus haut http://www.developpez.net/forums/viewtopic.php?t=302929
    je savais pas que les sgbd avait chacun un SQL different
    mais tu as raison si j'avais su que REGEXP etait propre a mysql j'aurai posté dans le forum approprié mais avec LIKE me revoila dans le bon forum
    mais pour le like c'est bien la bonne syntaxe ?
    ce que je veut
    c'est dire selectionne tous les enregistrement ou le champ nonaffiche avec des caracteres avant ou apres ne contient pas la variable $moi

  7. #7
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Salut,

    en faisant comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT * FROM table 
    WHERE nonaffiche NOT LIKE '%$moi%' 
    ORDER BY date DESC
    Sinon les expressions régulières ne sont pas non plus gérées par MySql mais par le langage de programmation que tu utilises (PHP par exemple...)

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    je posais simplement la question ne sachant pas ce qu'est REGEXP, je crains que ce ne soit pas standard

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Pas tout à fait.... REGEX n'est pas implémenté dans SQL. En revanche, dans la norme SQL:1999 le prédicat SIMILAR existe et se base sur le concept d'expressions régulières :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    SIMILAR : un prédicat de comparaison de chaînes de caractères basé sur le modèle des expressions régulières. 
     
    Syntaxe :
     
    <string_value> IS [ NOT ] SIMILAR TO <pattern value> [ ESCAPE <escape value> ]
       <pattern value> ::=
          <string value>
          | <regular expression>
          <regular expression> ::=
             <regular term>
             | <regular expression> <vertical bar> <regular term>
             <regular term> ::=
                <regular factor>
                | <regular term> <regular factor>
                <regular factor> ::=
                   <regular primary>
                   | <regular primary> *
                   | <regular primary> +
                   <regular primary> ::=
                      <character specifier>
                      | %
                      | <regular character set>
                      | ( <regular expression> )
                      <character specifier> ::=
                         <non-escaped character>
                         | <escaped character>
                      <regular character set> ::=
                         <underscore>
                         | ( <character enumeration> ... )
                         | ( ^ <character enumeration> ... )
                         | ( : <regular charset id> : )
                         <character enumeration> ::=
                            <character specifier>
                            | <character specifier> - <character specifier>
                         <regular charset id> ::=
                             ALPHA
                             | UPPER
                             | LOWER
                             | DIGIT
                             | ALNUM
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CLI_ID, CLI_PRENOM
    FROM   T_CLIENT
    WHERE  CLI_PRENOM IS SIMILAR TO'[:ALPHA:]+[e]'
    Recherche les prénoms ne contenant que des lettres et se terminant par un 'e'

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    d'accord message reçu merci a tous !
    ps : je suis desolé en fait dans les cours SQL de A-Z j'avais pas vu que c'etait ce signe '%' qui voulait dire:
    "autant de caracteres et n'importe lequel " ( merci nantais)
    mais pour ce que SQL pro a dit je vais faire des test
    pour savoir si le IS SIMILAR fonctionne avec ma bdd ( MySql )
    en tout cas merci a tous
    a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/05/2007, 10h37
  2. Réponses: 5
    Dernier message: 10/07/2006, 09h31
  3. comment utiliser RegExp ?
    Par iceandsun dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/11/2005, 16h17
  4. Comment dire au browser, "le flux que tu recoit est du
    Par ouioui2000 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/09/2005, 14h47
  5. Réponses: 4
    Dernier message: 15/09/2005, 14h21

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