Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875

    mysql limit da 1 a tutti i restanti record

    Buonasera
    esiste un modo per indicare a mysql di mostrarmi tutti i recorda da 1 a tutti quelli che restano?

    Perche' in una prima query imposto "limit 0,1" quindi mostrando solo il primo, poi ne devo fare un'altra dove indico da 1 al resto.
    Non vorrei mettere un numero fittizio troppo alto (tipo 1000) se magari all'interno della tabella ho solo 50 record.

    Consigli?

  2. #2
    ??
    Non ti conviene fare il contrario, cioè ESCLUDERE quello che non ti serve?
    Non è molto chiaro cosa tu debba fare, magari se riesci a spiegare meglio perchè devi recuperare il "primo" (cioè solo uno) e poi tutti i successivi...

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    in pratica attualmente nella tabella ho 100 record.
    Effettuo una prima query per mostrare il primo record (limit 0,1) e faccio un upgrade solo per quel record

    Poi effettuo una seconda query dove effettuo l'upgrade di tutti i record restanti.

    Essendo che i record sono dinamici, nel senso che ora ne ho 100 ma fra un mese potrei averne 200, la seconda query vorrei farla con una fine esatta.
    Proprio per questo vorrei capire se esiste un modo per indicare nel limit di terminare quando avrà modificato tutti i record
    Se inserisco limit 1.200 e all'interno del database o 150 record, magari mysql si puo' aspettare l'aggiornamento di altri 50 record che non esistono.

    Sono solo mie supposizioni, magari posso mettere limit 1.1000 e va bene lo stesso, cerco solo di capire se esiste un modo per settare in automatico il limit o meno

  4. #4
    Mah, non ha molto senso così come l'hai detta.
    Se devi modificare il primo, anzichè fare "limit" dovresti andare secco su quel record (usando una chiave di qualche tipo, qui devi sapere tu come identifichi il fatto che sia il primo record) e poi fai l'altro upgrade su tutto TRANNE il primo ("update tabella set campo1= y, campo2 = y ... where id != x" e x è l'identificatore univoco di cui sopra)

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    Si potrebbe essere un'idea, l'unica cosa è che non saprei come ricavare il primo ID della prima query. Poi la seconda query sarebbe semplice usando ! =

  6. #6
    scusa ma non usi limit con una order by ?
    se non specifiche l'ordine la select è libera di restituire i record secondo un ordine non specificato.
    Il che vuol dire che il primo record di una select potrebbe essere diverso dal primo di un'altra
    anche se uguale

    HTH
    O santo protettore del'informatico quadratico medio , se puoi allontana da me questo cetriolo amaro!
    Programmazione agile ? Guarda che qua già da un pezzo facciamo programmazione acrobatica !

  7. #7
    vedere la query attuale non sarebbe male...

  8. #8
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,875
    La prima query che faccio è questa:
    in pratica mi seleziono il primo record disponibile ed una volta estratto faccio l'update che devo fare
    codice:
    SELECT 
    id_data, DATE_FORMAT(data_partenza_calendario, '%d/%m/%Y') AS data_partenza_calendario_ita, costo
    FROM tabella
    WHERE citta_partenza = 2 and attiva = 0 and data_partenza_calendario > CURDATE() 
    order by data_partenza_calendario asc 
    limit 0,1"
    poi proseguo con tutti gli altri record della tabella, in questo modo
    codice:
    SELECT 
    id_data, DATE_FORMAT(data_partenza_calendario, '%d/%m/%Y') AS data_partenza_calendario_ita, costo 
    FROM tabella 
    WHERE citta_partenza = 2 and attiva = 0 and data_partenza_calendario > CURDATE() 
    order by data_partenza_calendario asc limit 1,10
    in questo caso mi sto fermando al decimo id estratto.

    Vorrei capire se esiste un modo per fermare in automatico senza scrivere limit 1,10 perche' non saprò mai quanti id ci sono nella tabella.
    Posso anche impostare 1,100 ma se poi i record diventano 101 ne perderei 1, oppure se ne sono 90 potrebbe pensare che ci sono altri 10 record da controllare.

    Si tratta di un bot in python che si collega al mio database mysql e fa l'aggiornamento automatico al posto mio

  9. #9
    comunque, se fai una estrazione LIMIT 1, 10000 e hai 4 record, tranquillo che al 5° non ci arriva

  10. #10
    se id_data qualifica in maniera univoca il record, ti basta fare una update secca di tutti i record tranne quello

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.