requête sql un peu particulière ...

babiloou
Invité n'ayant pas de compte PHPfrance

15 nov. 2007, 14:57

Bonjour,


Voilà , je cherche à connaitre la requete sql qui me permettrait dans un tableau de séléction les lignes de ce dernier qui comprendraient dans un champs des caracteres alphabet (et pas que numérique)

je m'explique

id code nom
1 125 gbriel
2 A12 rene
3 547 paul
4 57B louis

je dois trouvrer une requete me permettant de séléction dans ce tableau la ligne 2 et 4.

merci d'avance pour votre aide ...

cordialement.

Eléphant du PHP | 206 Messages

15 nov. 2007, 15:12

EDIT :oublie de ce que j'ai dit et regarde les réponses ci dessous qui sont bien plus complètes
Modifié en dernier par Snipy le 15 nov. 2007, 15:39, modifié 1 fois.

Eléphant du PHP | 445 Messages

15 nov. 2007, 15:13

Je suis pas sur mais il me semble que cela peux fonctionner comme ceci :
SELECT id,nom,code FROM MaTable WHERE code REGEXP '[:alpha:]'=1

Mammouth du PHP | 2937 Messages

15 nov. 2007, 15:15

Je m'essaie :

Code : Tout sélectionner

SELECT code, nom FROM nom_de_la_table WHERE code REGEXP "[[:alnum:]]+"

babiloou
Invité n'ayant pas de compte PHPfrance

15 nov. 2007, 15:44

la requete suivante
SELECT SELECT id FROM codes WHERE code REGEXP '[:alpha:]'=1
j'obtiens :

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM code WHERE code REGEXP '[:alpha:]''

Mammouth du PHP | 2937 Messages

15 nov. 2007, 15:45

Essaie la requête que j'ai indiquée ci-dessus : elle devrait marcher, normalement.

babiloou
Invité n'ayant pas de compte PHPfrance

15 nov. 2007, 15:58

malheureusement celle_çi me renvoi sur erreur sql cependant ma requete utilise dejà des guillmets je les ai donc supprimé (tjrs pas) puis remplacé par (')

voici ma requete complête :

$result = mysql_query("SELECT SELECT id FROM tablecode WHERE code REGEXP [[:alnum:]]+") or die(mysql_error());;

ou encore :

$result = mysql_query("SELECT SELECT id FROM tablecode WHERE code REGEXP '[[:alnum:]]+'") or die(mysql_error());;

Mammouth du PHP | 2937 Messages

15 nov. 2007, 16:13

Le mot SELECT est répété. :wink:

babiloou
Invité n'ayant pas de compte PHPfrance

15 nov. 2007, 16:30

merci victor ça marche !!

que fais tu en ce moment ? tu recherches un stage rémunéré ? un emploi ?

j'ai téléchargé ton cv ... je le garde de côté , donne moi quelques précisions sur ta recherche actuelle

cordialement,

xavier

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 nov. 2007, 16:47

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)



Toujours commencer par tester les requêtes sans PHP autour... directement dans phpmyadmin (ou autre)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 445 Messages

15 nov. 2007, 17:05

D'apres ce qu'il dit il cherche une requete ne selectionnant que les enregistrements ou il y a au moins un lettre dans code.

Or avec cette requete tu obtiens :

Code : Tout sélectionner

SELECT "512" REGEXP "[[:alnum:]]+" -> 1 SELECT "51A" REGEXP "[[:alnum:]]+" -> 1
Il faudrait, je pense, préferer :alpha: à :alnum:

Code : Tout sélectionner

SELECT "512" REGEXP "[[:alpha:]]+" -> 0 SELECT "51A" REGEXP "[[:alpha:]]+" -> 1
Ensuite, j'ai peut etre mal compris sa demande.