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

    Query UPDATE con ORDER BY e LIMIT

    Gentili utenti,

    necessito di eseguire una sintassi di questo tipo:

    UPDATE fr_promo SET status = 2 WHERE id_shop = 1 ORDER BY date DESC OFFSET 5

    Tradotto: voglio impostare lo "status" a 2 a tutte quelle righe che hanno come "id_shop" 1, ma soltanto dopo le prime 5 ordinate per l'attributo date in modo descrescente.

    Mi sono accorto che la mia sintassi non funziona. Qual'è il modo corretto? Grazie

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non funziona ovvero? Che fa?

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Comunque temo non sia possibile

  4. #4
    Utente di HTML.it L'avatar di vnt54
    Registrato dal
    Mar 2009
    Messaggi
    500
    il motivo forse potrebbe essere che non hai impostato una chiave primaria.
    Sono stato nella terra della paura e dei vampiri...in transilvania?NO!..in Banca!

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da otta88sun Visualizza il messaggio
    ...... voglio impostare lo "status" a 2 a tutte quelle righe che hanno come "id_shop" 1, ma soltanto dopo le prime 5 ordinate per l'attributo date in modo descrescente ....
    Io con Access la farei cosi, ma con MySql non so se puoi fare le sottoquery ....
    codice:
    UPDATE 
    fr_promo 
    SET 
    fr_promo.status = 2
    WHERE 
    (
    ((fr_promo.id_shop)=1) 
    AND 
    ((fr_promo.date) Not In (SELECT TOP 5 date FROM fr_promo WHERE id_shop=1 ORDER BY date DESC))
    )
    ;
    .

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Quote Originariamente inviata da nman Visualizza il messaggio
    Io con Access la farei cosi
    E' sbagliata ma l'idea è giusta
    codice:
    UPDATE fr_promo SET status = 2 WHERE id_shop = 1 and id not in (select id from fr_promo where id_shop = 1 order by date desc limit 5)

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se è mysql ci vuole limit al posto di offset.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2026 vBulletin Solutions, Inc. All rights reserved.