Vinzenz Mai: Alle Einträge bis auf den letzten löschen

Beitrag lesen

Hallo

DELETE FROM tabelle
WHERE bei = 4 AND von = 1 AND besuch_zeit < (
   SELECT MAX(besuch_zeit) FROM tabelle WHERE bei = 4 AND von = 1
)
#1093 - You can't specify target table 'tabelle' for update in FROM clause
Ist halt komisch das das mit LIMIT nicht funktioniert obwohl es logisch hoch drei ist :-(

Es ist logisch, dass beides nicht geht. Das steht auch ganz genauso im Handbuch:

a) Subselect
   <zitat>
       Currently, you cannot delete from a table and select from the
       same table in a subquery.
   </zitat>

b) LIMIT:
   <zitat>
       ~~~sql DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
           [WHERE where_condition]
           [ORDER BY ...]
           [LIMIT row_count]

  
       [...]  
       The MySQL-specific LIMIT row\_count option to DELETE tells the server  
       the maximum number of rows to be deleted before control is returned  
       to the client  
   </zitat>  
  
  
Freundliche Grüße  
  
Vinzenz