Visualizzazione risultati 1 fino 5 di 5
Like Tree1Likes
  • 1 Post By darbula

Discussione: Wildcards con range in SQL

  1. #1
    Data registrazione
    30-04-2007
    Residenza
    Livorno
    Messaggi
    20

    Question Wildcards con range in SQL

    Ciao a tutti!

    Effettuando dei test di query direttamente da phpmyadmin mi sono scontrata con un piccolo problema.

    La seguente query funziona (risultati coerenti con le aspettative)

    SELECT * FROM Tabella WHERE num LIKE '0%'

    Quest'altra, che dovrebbe essere equivalente ma più ampia, no. (risultato vuoto)

    SELECT * FROM Tabella WHERE num LIKE '[0-9]%'

    Non sono supportati i range su altervista? Ho capito male il funzionamento del range? (uso le regex regolarmente quindi pensavo fosse uguale...)

    Grazie in anticipo ^_^
    » Sabriel «-» Chiara «

    "Nel 1980 un emo tentò di pogare, ma fu ucciso da un calcio rotante. « Ave a Chuck Norris."

  2. #2
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    L'operatore like o not like si usa per parti o non parti di una stringa mentre questo per i range https://dev.mysql.com/doc/refman/8.0/en/regexp.html
    FogliaArdente likes this.

  3. #3
    Data registrazione
    30-04-2007
    Residenza
    Livorno
    Messaggi
    20

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    L'operatore like o not like si usa per parti o non parti di una stringa mentre questo per i range https://dev.mysql.com/doc/refman/8.0/en/regexp.html
    Con la regex ho risolto grazie.

    Però il mio dubbio rimane, dato che secondo la documentazione sono accettati i range:
    https://www.w3schools.com/sql/sql_like.asp

    Io dovrei ottenere una colonna con i soli campi che iniziano per un un numero, perchè non posso ottenerlo con like?

  4. #4
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    a% indica che deve iniziare con a , %a indica che deve finire con a , %a% indica cerca a in qualsiasi posizione. Mentre questo _a indica esattamente cerca a nella seconda posizione (_ vale solo un carattere).. Non c'è il supporto per i range ma puoi utilizzare AND o OR (condizioni) oppure una regex o meglio ancora un intervallo con BETWEEN (se devi cercare più di un intervallo tanto vale utilizzare una regex). https://www.mrwebmaster.it/mysql/ope...-in_11994.html
    Edit: errore corretto, grazie.
    Ultima modifica di darbula : 03-10-2019 alle ore 16.56.17

  5. #5
    Data registrazione
    30-04-2007
    Residenza
    Livorno
    Messaggi
    20

    Predefinito

    In realtà la posizione del % ha significati opposti a quanto dici, però mi sono accorta che nella pagina che ho linkato qui effettivamente il range non c'è, ieri ne avevo trovata una diversa, temo di aver confuso gli SQL di altre piattaforme.

    Grazie delle risposte :)
    » Sabriel «-» Chiara «

    "Nel 1980 un emo tentò di pogare, ma fu ucciso da un calcio rotante. « Ave a Chuck Norris."

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •