sql >> Database teknologi >  >> RDS >> Mysql

MYSQL - tilføj eller indsæt værdi i en kolonne afhængig af om den er tom eller ej

https://dev.mysql.com/doc /refman/5.0/da/insert-on-duplicate.html

Det betyder i dit tilfælde:

INSERT INTO tablename (id,columnname) VALUES (1,'//string')
  ON DUPLICATE KEY UPDATE columnname=CONCAT(columnname,'//string');

http://sqlfiddle.com/#!9/bd0f4/1

OPDATERING Bare for at vise dig dine muligheder:

http://sqlfiddle.com/#!9/8e61c/1

INSERT INTO tablename (id, columnname) VALUES (1, '//string')
  ON DUPLICATE KEY UPDATE columnname=CONCAT(columnname,'//string');

INSERT INTO tablename (id, columnname) VALUES (1, '//string')
  ON DUPLICATE KEY UPDATE columnname=CONCAT(columnname,'//string');

INSERT INTO tablename (id, columnname) VALUES ((SELECT id FROM tablename t WHERE columnname='blahblah'), '//string')
  ON DUPLICATE KEY UPDATE columnname=CONCAT(columnname,'//string');

INSERT INTO tablename (id, columnname) VALUES ((SELECT id FROM tablename t WHERE id=2), '//string')
  ON DUPLICATE KEY UPDATE columnname=CONCAT(columnname,'//string');

INSERT INTO tablename (id, columnname) VALUES ((SELECT id FROM tablename t WHERE columnname='newone'), '//newone')
  ON DUPLICATE KEY UPDATE columnname=CONCAT(columnname,'//newone');


  1. Hvordan ekko tilfældige rækker fra databasen?

  2. Returner rækker, der indeholder alfanumeriske tegn i SQLite

  3. SQLiteException:tabel eksisterer allerede

  4. Vælg produkter efter flere attributter ved at bruge OG i stedet for ELLER sammenkædning, Datamodel EAV