Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225

    [MySQL] prendere il max numero esadecimale

    Ciao! Come posso ricavare il max numero decimale di una colonna? Ho provato con:

    codice:
    Select max(colonna) From table_1
    ma su dei numeri già memorizzati (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, A, B, C, D, E, F)
    vede come massimale la "F" e quindi all'incremento cerca di reinserire "10"
    Come posso fare?

  2. #2
    vede come massimo la F invece tu cosa vorresti che vedesse?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    Quote Originariamente inviata da bomberdini Visualizza il messaggio
    vede come massimo la F invece tu cosa vorresti che vedesse?
    Si esatto. Una sequenza esadecimale è così:

    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10....

    la mia colonna ovviamente non li ha in ordine, quindi ad esempio è così:

    1, 0, 2, 6, 7, 9, B, D, C, 10, C, 5, 8, ecc ecc

    quindi vorrei che vedesse il 10, proprio perchè è il max numero esadecimale inserito. Come posso fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    hai provato così?


    Select max(conv('colonna',16,10)) From table_1


    ciao


    http://www.w3resource.com/mysql/stri...x-function.php

  5. #5
    Non mi risulta che 10 sia un numero esadecimale.

    In esadecimale si va da 0 a 9 e da A ad F

    ps vedi se la funzione di mysql per gestire gli esadecimali
    puo fare al caso tuo.. Mi sembra si chiami hexa( )
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    Non mi risulta che 10 sia un numero esadecimale.
    certo che è esadecimale...continua con 11,12,...,19,1A,1B,1C,1D, ecc ecc


    123delphi321 hai provato così?
    Select max(conv('colonna',16,10)) From table_1
    Non funziona Delphi...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    va bene ragazzi, se non si può fare fa niente...almeno mi dite come posso fare a prendere il max numero tra questi?
    L1, L2, L5, L10, L7, L9, L12, L11, L3, L4, L8, L6 ---> quindi L12. Ho provato semplicemente con

    Select max(colonna) From table_2

    ma mi restituisce L9

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao...

    [QUOTE=Danelius;25212921
    Select max(conv('colonna',16,10)) From table_1

    Non funziona Delphi... [/QUOTE]



    e che errore ti da?

    il campo colonna che tipo è?


    Select max(conv(table_1.colonna,16,10)) From table_1

    Select max(hex(table_1.colonna)) From table_1

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2014
    residenza
    Genova, presenza costante a Milano
    Messaggi
    100
    La soluzione che ti ha scritto Delphi è giusta, tranne che MAX() va messo all'interno (altrimenti fa la conversione di ogni singolo valore in tabella prima di estrarre il massimo, mentre l'esecuzione ottimale consiste nel leggere un unico valore da un indice). Se non funziona l'hai scritta male tu, ecco la dimostrazione.

    MariaDB [(none)]> SELECT CONV('A', 16, 10);
    +-------------------+
    | CONV('A', 16, 10) |
    +-------------------+
    | 10 |
    +-------------------+
    1 row in set (0.00 sec)

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    225
    Niente ragazzi, alla fine ho rinunciato all'esadecimale ed ho modificato i campi in decimali (nel secondo modo: L1, L2, L5, L10, L7, L9, L12, L11, L3, L4, L8, L6 ---> quindi il maggiore L12)

    e con questa query mi prendo il maggiore:
    codice:
    SELECT MAX(CAST(SUBSTRING(colonna,2) AS SIGNED)) AS ris FROM tabella_1
    così poi prendo il valore escludendo la "L" e con php incremento

    grazie comunque

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.