Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245

    [SQL] Estrazione dati con iniziale compresa tra una lettera e l'altra

    ciao,

    è possibile fare una query sql che permetta di estrarre un insieme di dati delimitato da due lettere iniziali?

    Ad esempio in una struttura dati comprendente le seguente strighe:

    axxxx
    bxxxx
    cxxxx
    exxxx
    fxxxxx
    gxxxx
    ....

    date due lettere iniziali, una come limite superiore "a" e l'altra come limite inferiore "e", mi dovrebbe estrarre il seguente insieme:

    axxxx
    bxxxx
    cxxxx
    exxxx

    Spero di essere stato abbastanza chiaro. Grazie per l'attenzione.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    select * from tabella where nome regexp '^[a-e]'

  3. #3
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    Originariamente inviato da nicola75ss
    select * from tabella where nome regexp '^[a-e]'
    Grazie

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Così forse è anche meglio.

    select * from tabella where nome >= 'a' and nome < 'f'


  5. #5
    Mi permetto di intervenire alla discussione consigliandoti quello che è il metodo migliore da utilizzare, quello cioé maggiormente utilizzato per le query dei motori di ricerca interna dei siti.

    Codice PHP:
    SELECT campo1campo2campo3
    FROM tabella
    WHERE campo4 LIKE 
    'pa%'
    In questo modo estrai tutte i record in campo4 con la parola che inizia per 'pa'.
    Per cui 'PAstasciutta' e 'PArallelepipedo' soddisferebbero la query 'POlenta' e 'PEperone' no.

    Il segno di percentuale (%) è il carattere jolly.
    Viene da sé che se ne utilizzi due (uno prima ed uno dopo la stringa di ricerca), vai ad estrapolare tutte i record in cui compare la stringa anche all'interno di altre parole.

    Esempio:
    Codice PHP:
    SELECT campo1campo2campo3
    FROM tabella
    WHERE campo4 LIKE 
    '%pare%'
    In questo modo otterresti invece i record che contengono 'PAREnte' e 'PAREggio' ma anche quelli che contengono 'scomPARE' e 'apPAREcchiare'.

    Spero di essere stato chiaro, ad ogni modo ti consiglio di sfruttare questa dicitura in quanto, una delle altre suggerite non credo sia supportata dalla sintassi SQL (quella col regexp) mentre l'altra non serve assolutamente per quelle che sono le tue richieste!
    Ti consiglio poi di sfruttare sempre al massimo il server MySQL al fine di mandare allo script PHP direttamente i record interessati dalla query, e velocizzando di conseguenza il rendering della pagina.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Ho letto meglio il tuo post e credo che ti ho segnalato una query parzialmente inesatta.

    Codice PHP:
    select from tabella where nome >= 'a%' and nome 'f%' 
    Non l'ho provata, ma credo che così dovrebbe funzionare.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it L'avatar di bobc
    Registrato dal
    Feb 2004
    Messaggi
    245
    Originariamente inviato da alcio74
    Spero di essere stato chiaro, ad ogni modo ti consiglio di sfruttare questa dicitura in quanto, una delle altre suggerite non credo sia supportata dalla sintassi SQL (quella col regexp) mentre l'altra non serve assolutamente per quelle che sono le tue richieste!
    Ti consiglio poi di sfruttare sempre al massimo il server MySQL al fine di mandare allo script PHP direttamente i record interessati dalla query, e velocizzando di conseguenza il rendering della pagina.
    Il regexp funziona benissimo, comunque grazie!

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.