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

    Mysql timestamp e data di mezzo...

    Io ho due tabelle, una con una registrazione di data, l'altra è un log...
    non ho la possibilità di sincronizzare le operazioni fatte con il log ma ho la data e l'ora delle operazioni.
    Come posso prelevare 2 record precedenti e 2 record successivi a quella data?
    Non vorrei fare 30 query con 30 passaggi in PHP per arrivare a qualcosa che sicuramente è semplice ma che ora mi sfugge.

    il mio problema è che possiedo ipoteticamente la data di mezzo, e devo prelevare il record che sta prima o dopo una certa data confrontandolo poi con altri campi..


    "SELECT * FROM proceslog WHERE storeData<(SELECT data as Fdata FROM oplog WHERE id='".(int)$_GET['oplog']."') or inter='".$OPL['cab']."' ORDER BY storeData DESC LIMIT 0,5"
    CORROBORANTE
    GLEEEEEERRB!

  2. #2
    dovresti fare due query... una con data minore dell'evento considerato ordinata DESC e limit 2, l'altra con data maggiore dell'evento order by data ASC limit 2.

    Credo sia la via piu' semplice anche come query.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    se hai MySQL >= 4.0.0 puoi usare la sintassi UNION per concatenare 2 query:
    http://dev.mysql.com/doc/mysql/en/union.html




    think simple think ringo

  4. #4
    alla fine sto provando con questo:

    "SELECT * FROM proceslog WHERE (storeData<='$OPL[data]' and '$OPL[data]'<=storeData) and inter='".$OPL['cab']."' ORDER BY storeData DESC LIMIT 0,5"

    sembrerebbe non esserci nessun problema,... devo verificare però

    ho provato anche con BETWEEN... ma è la medesima cosa del semplice min/max
    CORROBORANTE
    GLEEEEEERRB!

  5. #5
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969

    (storeData<='$OPL[data]' and '$OPL[data]'<=storeData)
    è 1 solo se storeData=$OPL[data]!

  6. #6
    se ti capita.... spiegami come funziona questa AND...
    codice:
    WHERE (storeData <= '$OPL[data]'
    AND '$OPL[data]' <= storeData)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    poi verificando,... non andava bene... quindi ho provato anche una union:

    "(SELECT * FROM proceslog WHERE storeData<='$OPL[data]' and inter='".$OPL['cab']."' ORDER BY storeData ASC LIMIT 0,2) UNION"
    ."(SELECT * FROM proceslog WHERE storeData>='$OPL[data]' and inter='".$OPL['cab']."' ORDER BY storeData ASC LIMIT 0,2)"


    Tornano solo 3 risultati.... ma sò che ce ne sono altri.. a in più non torna affatto il risulato giusto :S
    CORROBORANTE
    GLEEEEEERRB!

  8. #8
    [supersaibal]Originariamente inviato da piero.mac
    se ti capita.... spiegami come funziona questa AND...
    codice:
    WHERE (storeData <= '$OPL[data]'
    AND '$OPL[data]' <= storeData)
    [/supersaibal]
    uno per entrambi:

    sò e di solito lo faccio che le comparazioni posso essere inverse:

    data=1 or 1=data

    sbaglio?
    CORROBORANTE
    GLEEEEEERRB!

  9. #9
    una UNION non e' altro che fare due query con un solo comando, due query esattamente come ti ho detto prima. Una devi ordinarla ASC per prendere le date superiori e l'altra DESC per le dati inferiori.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    [supersaibal]Originariamente inviato da Achilleterzo
    uno per entrambi:

    sò e di solito lo faccio che le comparazioni posso essere inverse:

    data=1 or 1=data

    sbaglio? [/supersaibal]
    gia' te lo ha spiegato Teuzzo ...

    poiche' fai una comparazione con lo stesso record, non potra' MAI essere maggiore o minore nello stesso tempo, ma soltanto UGUALE.

    ed ecco che tanto valeva scrivere

    WHERE storeData = '$OPL[data]'


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.