Visualizzazione dei risultati da 1 a 8 su 8

Discussione: query

  1. #1

    query

    salve, io realizzo una semplice query così:
    "SELECT * FROM sulla_psicoterapia ORDER BY titolo ASC "
    il titolo è composto sempre in questo modo
    1. primo articolo
    2. secondo articolo

    fintanto che arrivo 9 viene ordinato tutto correttamente ma logicamente essendo un campo stringa il 10 e 11 etc.. vengono ordinati doppo il numero 1. e prima di 2.
    Esiste l'opportunita di rendere questo campo come se fosse un intero direttamente nella query?

  2. #2
    Non ti conviene creare un altro campo, numerico, e inserire lì il riferimento al numero che c'è nel titolo ?
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  3. #3
    se possibile preferirei evitare dato che il cliente me lo ha chiesto così

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prova una cosa del genere:

    select titolo, cast(substring_index(titolo,'.',1) as unsigned) as ordina
    from sulla_psicoterapia order by ordina;

  5. #5
    grazie funziona,
    solo che non ho capito bene!!
    con cast hai creato una nuova variabile che con soltanto il valore numerico iniziale del titolo
    giusto??

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da fiorentinese
    grazie funziona,
    solo che non ho capito bene!!
    con cast hai creato una nuova variabile che con soltanto il valore numerico iniziale del titolo
    giusto??
    Con la funzione substring_index passandole come parametro il punto recupero il testo che sta alla sinistra del punto stesso. Quindi mi restituisce 1,2,10 ecc. Ovviamente essendo stringa l'ordinamento rimane "sballato". Il cast forza la conversione da stringa a intero e quindi l'ordinamento risulta corretto.


  7. #7
    grazie.. anche la domenica mattina si può imparare qualcosa

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da fiorentinese
    grazie.. anche la domenica mattina si può imparare qualcosa

    Il cliente ha sempre ragione ma come ti ha fatto notare gm non è il massimo come soluzione. Se il cliente non capisce una mazza devi essere tu a imporre le tue ragioni, quando possibile.

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.