Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [mysql] Ricerca prefisso telefonico dentro tabella

    Avendo un numero di telefono vorrei ricercare il prefisso fra un database.

    Nel database avrò l'elenco dei prefissi ad esempio 070 e dovrei strutturare la query tipo.

    Se nel database c'è un prefisso che corrisponda al numero 07033210 allora dammi le informazioni.

    Il prefisso può avere dimensioni diverse.

    Grazie

  2. #2
    SELECT elenco_campi FROM tabella WHERE numero LIKE prefisso%

  3. #3
    Nella colonna prefisso però c'è solo "070"

    Quindi in teoria dovrebbe essere

    SELECT * FROM `copertura` WHERE '07033210' LIKE `Prefisso`%

    solo che così la query ovviamente non funziona

  4. #4
    allora non ho capito cosa devi fare... spiegati meglio e posta anche la struttura della/e tabella/e

  5. #5
    Allora,
    ho una tabella con l'elenco dei prefissi telefonici.

    codice:
    ID Prefisso	| Prefisso	| Zona
    1		| 070		| Cagliari
    2		| 02		| Milano
    3		| 06		| Roma
    Vorrei verificare la zona di appartenenza. Dando un numero, per esempio "07033210", mi deve restituire come Zona Cagliari.

  6. #6
    questa è per SQL server

    SELECT * FROM Prefissi WHERE Substring('02342312', 1,Len(Prefisso))=Prefisso

    va sistemata per mySql

  7. #7
    Lascio la query "mysql" per i posteri

    Grazie optime... Non ci avevo pensato a farla così...

    SELECT * FROM `prefissi` WHERE MID('0703321', 1, CHARACTER_LENGTH(`Prefisso`))=`Prefisso`

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Non so se esista qualche particolare convenzione per prefissi/numeri telefonici e magari il mio dubbio non può verificarsi ma

    Questa query:

    codice:
    SELECT * FROM `prefissi` WHERE MID('070123456', 1, CHARACTER_LENGTH(`Prefisso`))=`Prefisso`
    nel caso ci siano due prefissi 070 e 0701 li restituirebbe entrambi.
    Accoderei alla query un ordinamento decrescente

    codice:
    SELECT * FROM `prefissi` WHERE MID('070123456', 1, CHARACTER_LENGTH(`Prefisso`))=`Prefisso` order by char_length(prefisso) desc limit 1
    per "matchare" la stringa più lunga.

  9. #9
    nicolino, precauzione inutile. i prefissi sono stati studiati appositamente per evitare che si sovrapponessero. pensa: nessun altro prefisso inizia con 06 o 02 che non siano roma o milano.

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da optime
    nicolino, precauzione inutile. i prefissi sono stati studiati appositamente per evitare che si sovrapponessero. pensa: nessun altro prefisso inizia con 06 o 02 che non siano roma o milano.
    Meglio così allora. Grazie per l'informazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.