Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

[résolu]SQL. commande LIKE


july

Messages recommandés

Bonjour,

Sur une page web j'ai un abécédaire.

Comme dans tout abécédaire j'ai le caractère "#" qui me permet de rechercher toutes les chaines ne commençant pas par une lettre.

Mais je en sais pas faire la requête appropriée pour cela.

 

ça doit ressembler à : WHERE nom LIKE '?????'

Je ne sais pas quoi mettre dans mon like pour qu'il me prenne toute les chaines ne commençant pas par une lettre (chiffre, ponctuation...).

 

Merci de votre aide

Lien vers le commentaire
Partager sur d’autres sites

Dans la chaine que tu passes à LIKE, c'est le % qui est utilisé pour représenter n'impote quelle chaine, et _ pour représenter un seul caractère (quel qu'il soit).

Pour le reste, je ne suis pas certain d'avoir bien compris ce dont tu disposes et ce que tu souhaites faire avec.

 

Si tu souhaites que ta requête aille chercher toutes les chaines qui commencent par un dièse, il faut mettre la condition

 (...) WHERE chaine LIKE '#%'

Lien vers le commentaire
Partager sur d’autres sites

Peut être que je ne peux pas avoir le résultat en une seule requête ?

Ne faut-il pas que je ramène tous les résultats de ma table en SQL, puis en PHP je n'affiche que ceux qui commencent par un caractère non alpha ?

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Je ne connais pas SQL sur micro, mais sur DB2 mainframe, je me débrouille passablement.

 

Avec LIKE, ça me semble compliqué (Un tas de NOT LIKE 'A%" AND NOT LIKE 'B%' ... )

 

Peut-être :

 

 (...) WHERE SUBSTR(chaine, 1, 1) < 'A'
      OR (SUBSTR(chaine, 1, 1) > 'Z'
          AND SUBSTR(chaine, 1, 1) < 'a')
      OR SUBSTR(chaine, 1, 1) > 'z'

pourrait le faire.

 

Ou encore :

 

 (...) WHERE chaine < 'A'
      OR (chaine > 'Z~'
          AND chaine < 'a')
      OR chaine > 'z~'

avec "~" représentant le caractère 0xff : <Alt>255 sur le pavé numérique, si SQL ne s'étrangle pas.

Sinon, si ton SQL supporte la notation X'...', tu peux tenter des "OR chaine > X'5AFF', '5A' étant le code ASCII du 'Z'. '7A' pour 'z'. A vérifier, il se fait tard.

 

Par contre, je doute que ce soient des requêtes indexables (Si cette notion existe ici), à cause de SUBSTR et OR. Ca va faire hurler les DBA !

 

Et bien sûr, ça n'est valable qu'en ASCII (Mais je doute que tu veuilles le porter sur un host EBCDIC) :P

 

A+

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...