Page 1 sur 1

extraire des nombres dont les 8 premiers chiffres sont ident

Posté : 26 avr. 2008, 18:32
par martial
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

Posté : 26 avr. 2008, 18:37
par Sékiltoyai
Tu peux exporter ton shéma de tables comme indiqué dans les rappels ?

Posté : 26 avr. 2008, 18:44
par Sékiltoyai
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…

Posté : 26 avr. 2008, 18:49
par martial
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 |

Posté : 26 avr. 2008, 18:58
par Sékiltoyai
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…

Posté : 27 avr. 2008, 09:53
par caroube
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.

Posté : 27 avr. 2008, 11:34
par katagoto
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...

Posté : 27 avr. 2008, 20:22
par Sékiltoyai
Mais si tu as des centaines de milliers de numéreaux, reste pas sur MySQL, prend PostGreSQL et gère avec PDO...
Pourquoi donc ?