requete sql: afficher enregistements qui ne possedent pas le caractere '@'

pod1978
Invité n'ayant pas de compte PHPfrance

15 févr. 2008, 16:40

bonjour,

j'ai une table avec 3 champs id, login, pwd

je voudrai savoir comment faire une requete qui me retourne les enregistements qui n'ont pas le caractere '@' dans le champ login afin de pouvoir les supprimer

j'espere avoir été clair

merci de vos réponses

pod

d0m
Mammouth du PHP | 1141 Messages

15 févr. 2008, 17:10

je dirais avec un like :

Code : Tout sélectionner

SELECT champ FROM table WHERE champ NOT LIKE %@%
de ce genre là

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 févr. 2008, 17:14

Attention : Ce genre de condition (like '%..%') est désastreux pour les performances d'une base de données.

A ne pas utiliser autrement que très ponctuellement, et en gardant à l'esprit que le temps d'exécution peut être très long. ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

d0m
Mammouth du PHP | 1141 Messages

15 févr. 2008, 17:16

D'après ses explications, il semble que c'est de temps en temps pour faire le ménage don ça pourrait suffire.

ViPHP
ViPHP | 5924 Messages

15 févr. 2008, 17:56

Euh, tu gagnerais à vérifier cela dans ton script php. C'est totalement illogique de le faire après l'insertion…

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 févr. 2008, 18:13

D'après ses explications, il semble que c'est de temps en temps pour faire le ménage don ça pourrait suffire.
Certes, mais comme le but de se forum n'est pas uniquement de fournir une solution à un problème spécifique, mais également de donner des informations qui pourrait servir dans d'autres cas, j'ai trouvé que le préciser n'était pas inutile ;)

Sinon, Sekiltoyai soulève un point intéressant : pourquoi ne pas refuser l'insertion de données "fausses" plutôt que d'essayer des les nettoyer plus tard ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer