extraire des nombres dont les 8 premiers chiffres sont identiques

Eléphant du PHP | 89 Messages

26 avr. 2008, 18:32

Bonjour à tous!

Je posséde une table dont une colonne contient des nombres. J'aimerais connaitre la requete qu'il faut executer (BDD MYSQL) pour faire apparaitre le ou les nombres dont les huit premiers chiffres minimum sont identiques

ViPHP
ViPHP | 5924 Messages

26 avr. 2008, 18:37

Tu peux exporter ton shéma de tables comme indiqué dans les rappels ?

ViPHP
ViPHP | 5924 Messages

26 avr. 2008, 18:44

Sinon, je pense que tu peux essayer cette formule ci :

Code : Tout sélectionner

(MOD(field,100000000) / MOD(field,10)) == 11111111
En remplaçant field par le nom du champ…

Eléphant du PHP | 89 Messages

26 avr. 2008, 18:49

Voilà la structure de la table. En fait, il s'agit simplement de les classer par numéros mais sur une base de plusieurs centaines de milliers de numéros....

NUMERO | NOM | PRENOM |
12345678911| TOTO | JULES |
55998776355 | ROMEO | ROGER |
12345678922| TITI | RENE |

ViPHP
ViPHP | 5924 Messages

26 avr. 2008, 18:58

Ce serait mieux que tu postes ta table au format SQL car il manque des informations. (voir http://www.phpfrance.com/forums/voir_sujet-34456.php )

Et en quoi une requète te rendant les nombres ayant 8 premières chiffres identiques t'aidera ?
Au passage ma solution te donne les 8 premiers chiffres égaux, mais dans l'autre sens…

Eléphant du PHP | 422 Messages

27 avr. 2008, 09:53

Ta question, c'est
- tu recherches les enregistrements dont les 8 premiers chiffres sont identiques à un nombre de 8 chiffres donné
ou
- tu cherches des "doublons" sur 8 chiffres parmi tous les enregistrements ?

dans le premier cas, tu convertis ton nombre en caractères avec un TO_CHAR et tu fais un

Code : Tout sélectionner

where to_char(nombre) LIKE '12345678%'
dans le second cas, crées une colonne avec les 8 premiers chiffres et fais une classique recherche de doublons.

Mammouth du PHP | 1668 Messages

27 avr. 2008, 11:34

Oui mais ça l'oblige à connaitre les 8 premièrs chiffres :/
A moins de faire ça avec 2 requête :
La première récupère les chiffres, il récupère les 8 premiers chiffres et après il en fait une seconde avec LIKE...

Mais si tu as des centaines de milliers de numéreaux, reste pas sur MySQL, prend PostGreSQL et gère avec PDO...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 5924 Messages

27 avr. 2008, 20:22

Mais si tu as des centaines de milliers de numéreaux, reste pas sur MySQL, prend PostGreSQL et gère avec PDO...
Pourquoi donc ?