Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [MySQL] Ricerca campi iniziano con una numero

    Ciao a tutti,
    mi serve una query per trovare tutti i record con un determinato campo VARCHAR che inizia per un carattere diverso da una lettera.

    Per essere più chiaro, se sto cercando i campi che iniziamo per 'L' uso:
    campo LIKE 'l%'

    Se invece devo cercare campi che iniziano con '1' o con '-', '(', ecc. come posso fare?
    Ovviamente con una query sola.. non una query per ogni carattere che non è lettera.

    Ciao e grazie!

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

  3. #3
    Ho fatto così:
    codice:
    SELECT nome
    FROM schede
    WHERE nome REGEXP '[^[:alpha:]]'
    E ottengo questi risultati.. apparentemente senza alcun senso:
    Vinci il cellulare
    Sole 24ore
    Penny Market


  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Strano.
    A me restituisce tutti i record in cui il campo non inizia con una lettera, quindi i record che iniziano con un numero, con un trattino ecc.

  5. #5
    Che sia un problema di collation? Te su che cosa l'hai impostata.. io non so mai quale scegliere e lascio su latin1_swedish_ci..
    Però noto che se metto su utf8_bin non mi funziona più la ricerca per lettera.. magari esiste una collation che me li fa funzionare entrambi..


  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    La query che ti ho postato l'ho provata in un campo con lo stesso collation tuo (latin1_swedish_ci) e funziona.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Mi spiace, non so che dirti. Attendi qualcuno più esperto. A me funziona come dovrebbe.

  8. #8

  9. #9
    Utente di HTML.it L'avatar di zoseppe
    Registrato dal
    Jan 2005
    Messaggi
    306
    per tutti cercare tutti i record che non iniziano con una lettera puoi fare così

    SELECT nome FROM schede WHERE nome not REGEXP '^[a-z]';

    per trovare tutti quelli che iniziano per un numero

    SELECT nome FROM schede WHERE nome REGEXP '^[0-9]';


    ciao

  10. #10

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 © 2024 vBulletin Solutions, Inc. All rights reserved.