Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con query MYSQL

    Ciao ragazzi, vorrei creare una query con mysql che traduca questa frase:
    SE NESSUNA RIGA DELLA TABELLA X HA request_id = "", ALLORA CREA UNA RIGA NELLA TABELLA Y; DIVERSAMENTE IMPOSTA request_id = "1" ALLA PRIMA RIGA VUOTA

    Purtroppo non riesco ad affrontare il problema, soprattutto non sono riuscito a creare una condizione...
    se non ci avete capito nulla mi raccomando ditelo che cercherò di spiegarlo meglio. Grazie mille!
    RichiFra03

  2. #2
    spiegati meglio, fa' un esempio

  3. #3
    Dunque, innanzitutto grazie per la risposta.
    Devo creare una query che verifica se sono presenti delle righe con la colonna "request-id" vuota. Qualora siano presenti righe con quel campo vuoto, devo andare a popolare quel campo di una riga tra quelle vuote, scrivendoci ad esempio "X".
    Se invece non sono presenti righe con quel campo vuoto, ne creo una nuova.
    Ad inserire un valore in una riga oppure creare una riga nuova so fare, il problema è che devo eseguire il tutto al verificarsi di una condizione. Quello che mi verrebbe da scrivere sarebbe:

    IF (SELECT COUNT(*) FROM mytable WHERE request_id = '')=0 THEN
    INSERT INTO mytable (campo_1, request_id) VALUES ('abc', '')
    ELSE
    UPDATE mytable SET request_id='xyz' WHERE request_id='' LIMIT 1
    END IF


    eseguendo quindi una query dentro un'altra... come potrei fare? Ho evidenziato limit 1 per sottolineare che non deve aggiornare più di una riga. Spero sia più chiaro cosa mi serve, in caso contrario non esitare a chiedere nuovamente.. non sono un genio nell'esporre =D
    Grazie per la pazienza!
    RichiFra03

  4. #4
    Sono riuscito a risolvere, posto il codice nel caso in cui servisse a qualcuno:
    Codice PHP:
    delimiter //
    CREATE PROCEDURE myfunction()BEGIN
    SET 
    @count = (SELECT COUNT(*) FROM mytable WHERE request_id='');
    IF @
    count 1 THENINSERT INTO mytable (user_idrequest_id)VALUES ('noname','');ELSEUPDATE mytable SET request_id='bblabla' WHERE request_id='' LIMIT 1;END IF;
    END//
    delimiter ;
    CALL myfunction(); 
    In poche parole non mi prendeva il blocco if perchè non era inserito all'interno di una funzione
    RichiFra03

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.