Visualizzazione risultati 1 fino 9 di 9

Discussione: delete multiple

  1. #1
    Guest

    Predefinito delete multiple

    sto eseguendo una delete multipla sul db che ho su un vostro spazio

    ma non funziona ... eppure su un altro spazio funzionava... per questo vi chiedo aiuto

    $query = ("DELETE tab1 FROM tab1 WHERE id IN ('4,5,6') ");


    mi cancella solo il primo record di quelli elencati invece che farlo a cascata .. nn ho capito perchè salti

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Hai provato cosi'?

    DELETE FROM tab1
    WHERE id = 4 OR id = 5 OR id = 6;

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    ... mha le espressioni di condizioni possono essere diverse ... a me serve quella perchè via php gli passo un array di valori .. che poi esplodo in una striga...quindi quel IN mi serve.. vorrei giusto capire perchè non funziona

  4. #4
    Guest

    Predefinito

    Prova con:
    ("DELETE FROM tab1 WHERE id IN ('4','5','6') ");


    Ciaooo!!

  5. #5
    Guest

    Predefinito

    mi hanno appena fatto sapere che il problema osno prorpio le '

    dovrei scrivere così

    "DELETE tab1 FROM tab1 WHERE id IN (4,5,6) "

    forse prima lo pigliava come stringa nn come valore numerico ... ma nn so

  6. #6
    Guest

    Predefinito

    Ma hai risolto?
    Cmq non dovrebbe far differenza la presenza o meno degli apici, piuttosto l'uso errato di questi: tu avevi scritto ('4,5,6') che significa una sola stringa che contiene appunto quei numeri e virgole, anzichè ('4','5','6') cioè 3 elementi distinti.
    Inoltre dovevi togliere (non so se dia errore o meno sinceramente) quel tab1 tra DELETE e FROM.


    Ciaoo!!!

  7. #7
    Guest

    Predefinito

    non ho provato con gli apici per valore ma credo funzioni ugualmente...

    senza gli apici come mi era stato suggerito cmq funziona

    per quanto riguarda le query con passaggio di valori numerici, non trovo nulla a riguardo

    ma se non erro essendo un numero non dovrebbe essere inserito tra apici e il db che richiede un valore numerico cercherà di risolvere la cosa prendendo dalla stringa solo i suoi contenuti numerici... quindi è indifferente sempre se sta soluzione nn richieda energie in + per il db

    ... ciaoo e grazieee

  8. #8
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da affafa
    ... ma se non erro essendo un numero non dovrebbe essere inserito tra apici e il db che richiede un valore numerico cercherà di risolvere la cosa prendendo dalla stringa solo i suoi contenuti numerici... quindi è indifferente sempre se sta soluzione nn richieda energie in + per il db
    Se si tratta di numeri, MySQL è un po' più permissivo di altri DBMS (come PostgresSQL che interpreta le direttive di ANSI-SQL in modo molto più rigoroso) e consente di specificare i valori numerici tanto dentro gli apici quanto no. Naturalmente se si tratta di stringhe gli apici DEVONO essere inseriti, altrimenti MySQL tenterebbe di interpretarli come campi e, non trovandoli, causerebbe errore.

    Io sono dell'opinione che se è un campo è numerico, è bene specificarlo esplicitamente, omettendo gli apici. Non so però se gli apici costringano ad uno sforzo maggiore il DBMS (ma, visto che anche phpMyAdmin compone le proprie query con gli apici sui numeri, credo sia qualcosa di trascurabile).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  9. #9
    Guest

    Predefinito

    mhhh guarda proprio oggi ho usato postgress e ho passato ad un campo numerico un numero tra apici.. l'ha pigliato lo stesso ... :D
    ... quindi forse è una regola generale che un db se richiede un valore e ne riceve un'altro cerca cmq di venirti incontro..
    in questo caso togliendo prima gli apici e verificando che sia un numero

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •