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

Discussione: Query non funzionante

  1. #1

    Query non funzionante

    Perchè mi dice che cè un errore?

    DELETE FROM contatto WHERE contatto.id NOT IN (
    SELECT presenti.id
    FROM presenti
    )

    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT presenti.id FROM presenti )' at line 1

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    versione di mySQL?
    solo dalla 4.1 IN (e quindi NOT IN) possono essere usati per fare subquery.
    http://dev.mysql.com/doc/mysql/en/Co...s.html#IDX1270
    think simple think ringo

  3. #3
    Il mio server ha una versione + vecchia

    Come posso ovviare il problema?

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da romaluca
    Il mio server ha una versione + vecchia

    Come posso ovviare il problema?
    credo facendo 2 query

    con la prima trovi tutti i presenti.id, gli disponi nel formato richiesto da IN ed esegui la seconda query.
    think simple think ringo

  5. #5
    E quale è il formato richiesto da in?

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da romaluca
    E quale è il formato richiesto da in?
    codice:
    mysql> SELECT 2 IN (0,3,5,'wefwf');
            -> 0
    mysql> SELECT 'wefwf' IN (0,3,5,'wefwf');
            -> 1
    think simple think ringo

  7. #7
    Scusa non capisco come faccio a mettere i valori risultanti dalla prima query nella seconda

    Scusa

  8. #8
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da romaluca
    Scusa non capisco come faccio a mettere i valori risultanti dalla prima query nella seconda

    Scusa
    potrebbe essere una cosa di qst tipo:
    codice:
    $st=mysql_query("SELECT presenti.id FROM presenti") or die(mysql_error());
    $temp=array();
    while ($row=mysql_fetch_assoc($st))
    	$temp[]=$row['ID'];
    $temp=implode(",",$temp);
    $st=mysql_query("DELETE FROM contatto WHERE contatto.id NOT IN ($temp)") or die(mysql_error());
    think simple think ringo

  9. #9
    Di dice nella delete
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

  10. #10
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da romaluca
    Di dice nella delete
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
    opss
    il codice l'hai preso così come l'ho postato, senza controllare niente??
    ho appena visto una cosa:
    codice:
    $temp[]=$row['ID'];
    ID deve andare minuscolo.
    codice:
    $temp[]=$row['id'];
    prova ora...in caso di nuovi problemi debugga un pò, magari stampando $temp.

    think simple think ringo

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.