Vinzenz Mai: knifflige (My)SQL-abfrage

Beitrag lesen

Hallo,

INSERT INTO table (artikelnr,titel,rabatt) VALUES (112233,'toller Artikel',10)

ON DUPLICATE KEY UPDATE rabatt=10;

  

> so weit so gut.  
> nun möchte ich den rabatt aber nur updaten, wenn garkein bzw. ein niedrigerer rabatt in dem datensatz vorhanden ist. geht das innerhalb eines sql-statements,  
  
ja. Es gibt verschiedene Wege.  
  
IF, IFNULL, CASE, GREATEST, COALESCE könnten Dir dabei helfen, siehe [Funktions- und Operatorreferenz](http://dev.mysql.com/doc/refman/5.0/en/func-op-summary-ref.html) - das hängt von den von Dir nicht genannten Randbedingungen ab. Den Handbuchabschnitt zur [INSERT ... ON DUPLICATE KEY UPDATE Syntax](http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html) kennst Du sicherlich schon.  
  
  
Freundliche Grüße  
  
Vinzenz