Visualizzazione dei risultati da 1 a 9 su 9

Discussione: query che no va

  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    query che no va

    codice:
    $query="SELECT *, date_format(Anno, '%d.%m.%Y') as new_data
    			FROM completa
    			WHERE YEAR(Anno) =" . $varanno ;
    $varanno=1962 and 1963 And 1964

    mi estrae solo 1962 perchè?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Non puoi usare una uguaglianza... come dire :

    2004 = 1962 and 1963 And 1964

    Devi usare la funzione IN()
    codice:
    SELECT *, date_format(Anno, '%d.%m.%Y') as new_data
    			FROM completa
    			WHERE YEAR(Anno) IN($varanno) ;
    $varanno = '1962, 1963, 1964'


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

  3. #3
    Io credo che lui volesse estrarre le righe dove l'anno corrispondeva agli anni che aveva iposato lui in varanno. Ma and preede che il campo year\li contenga tutti! Al posto di and usa or.

  4. #4
    [supersaibal]Originariamente inviato da mircov
    Io credo che lui volesse estrarre le righe dove l'anno corrispondeva agli anni che aveva iposato lui in varanno. Ma and preede che il campo year\li contenga tutti! Al posto di and usa or. [/supersaibal]
    una sintassi del tipo:

    year(data) = 1930 OR 1960 OR 2000

    proprio non esiste...


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

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    no scusate io ho proprio questa necessità ciooè quella di estrarre i record dove anno è uguale a tre valori.
    perchè non ci riesco?

    mi dici di + su sto IN ?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  6. #6
    Codice PHP:
    SELECT *, 
    date_format(Anno'%d.%m.%Y') as new_data
    FROM 
    completa
    WHERE 
    YEAR
    (Anno) = '1962'
    OR YEAR(Anno) = '1963'
    OR YEAR(Anno) = '1964' 
    Cosi' ti dovrebbe estrarre tutti i dati relativi agli anni 1962, 1963 e 1964....



  7. #7
    [supersaibal]Originariamente inviato da ciro78
    no scusate io ho proprio questa necessità ciooè quella di estrarre i record dove anno è uguale a tre valori.
    perchè non ci riesco?

    mi dici di + su sto IN ? [/supersaibal]
    Cosi' come lo esprimi ti servirebbe un miracolo...

    se anno = 1980

    non puo' essere uguale anche a 1981 e 1982.

    Sia le query con IN() oppure quelle con OR dovrebbero darti lo stesso risultato. Con IN() verifica che il valore cercato sia presente all'interno di una serie di valori....


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

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    si infatti rileggendo la query mi rendo conto che al limite serviva or e poi comunque dovevo ripetere l'uguaglianza


    penso che in sia + indicata la vedo + semplice

    ciao e grazie
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    [supersaibal]Originariamente inviato da magò11
    Codice PHP:
    SELECT *, 
    date_format(Anno'%d.%m.%Y') as new_data
    FROM 
    completa

    WHERE 
    YEAR
    (Anno) = '1962'
    OR YEAR(Anno) = '1963'
    OR YEAR(Anno) = '1964' 
    Cosi' ti dovrebbe estrarre tutti i dati relativi agli anni 1962, 1963 e 1964....


    [/supersaibal]
    Era questo quello che intendevo con "usa or al posto di and". Evidentemente non sono stato chiaro.

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.