Arrays in dB ändern ohne auszulesen

ThiKool

Erfahrenes Mitglied
Hi Community,

Gibt es eine Möglichkeit über ein dB update direkt ein per json gespeichertes Array zu edieren, also einen Wert umzuschreiben, zu löschen oder hinzuzufügen?

Danke euch :)
 
Ja, das sollte möglich sein. Abhängig von den Fähigkeiten der Datenbank könnte man im SQL-Statement mit Ersetzungsfunktionen arbeiten. Bei MySQL ist das mittels REPLACE möglich:

SQL:
DROP TABLE IF EXISTS `baz`;

CREATE TABLE `baz` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `headline` varchar(50) DEFAULT NULL,
  `content` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `baz` (`headline`, `content`) VALUES ('Alle Apfelbäume haben grüne Blätter', 'Irgendwann im April...'),
('Meine Katze frisst mir die Haare vom Kopf', 'Aber nur morgens bis abends');

UPDATE `baz` SET `content` = REPLACE(`content`, 'April', 'Mai') WHERE `headline` LIKE '%Blätter%';

SELECT * FROM `baz`;

Bei PostgreSQL gibt es regex_replace.

Mehr Macht bekommst du, wenn du eine Programmiersprache verwendest, die den entsprechenden Datensatz ausliest, verändert und wieder reinschreibt.
 
Zurück