Mehrere Werte in einem Feld speichern? - Datentype "SET"
bearbeitet von ursus contionabundoEs gibt als Datentype das "[SET](https://dev.mysql.com/doc/refman/8.0/en/set.html)".
~~~sql
CREATE TABLE `filter` (
`userID` INT,
`filter` SET('PauseBeginn', 'PauseEnde' ,'Kommen', 'Gehen' ),
INDEX (`userID`)
)
~~~
Danach kann in die Tabelle wie folgt eingetragen werden:
~~~SQL
INSERT INTO `filter` ( `userID` , `filter` ) VALUES ( 1, 'PauseBeginn' );
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn
Filter hinzufügen:
~~~SQL
UPDATE `filter` SET `filter` = CONCAT(`filter` , ',', 'PauseEnde') WHERE `userID`=1;
SELECT `userID`, `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn, PauseEnde
Index setzen und nach Filter abfragen:
~~~SQL
ALTER TABLE `filter` ADD INDEX `filter` ( `filter` )
SELECT `userID`, `filter` FROM `filter` WHERE FIND_IN_SET( 'PauseEnde',`filter` );
~~~
userID|filter
1|PauseBeginn, PauseEnde
Versuch eines bei der Spaltendefinition nicht definierten Eintrages:
~~~SQL
UPDATE `filter` SET `filter` = 'Nicht Definiert' WHERE `userID`=1;
SELECT `userID`, `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|
Mehrere Werte in einem Feld speichern? - Datentype "SET"
bearbeitet von ursus contionabundoEs gibt als Datentype das "[SET](https://dev.mysql.com/doc/refman/8.0/en/set.html)".
~~~sql
CREATE TABLE `filter` (
`userID` INT,
`filter` SET('PauseBeginn', 'PauseEnde' ,'Kommen', 'Gehen' ),
INDEX (`userID`)
)
~~~
Danach kann in die Tabelle wie folgt eingetragen werden:
~~~SQL
INSERT INTO `filter` ( `userID` , `filter` ) VALUES ( 1, 'PauseBeginn' );
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn
Filter hinzufügen:
~~~SQL
UPDATE `filter` SET `filter` = CONCAT(`filter` , ',', 'PauseEnde') WHERE `userID`=1;
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn, PauseEnde
Index setzen und nach Filter abfragen:
~~~SQL
ALTER TABLE `filter` ADD INDEX `filter` ( `filter` )
SELECT `userID`, `filter` FROM `filter` WHERE FIND_IN_SET( 'PauseEnde',`filter` );
~~~
userID|filter
1|PauseBeginn, PauseEnde
Versuch eines bei der Spaltendefinition nicht definierten Eintrages:
~~~SQL
UPDATE `filter` SET `filter` = 'Nicht Definiert' WHERE `userID`=1;
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|
Mehrere Werte in einem Feld speichern? - Datentype "SET"
bearbeitet von ursus contionabundoEs gibt als Datentype das "[SET](https://dev.mysql.com/doc/refman/8.0/en/set.html)".
~~~sql
CREATE TABLE `filter` (
`userID` INT,
`filter` SET('PauseBeginn', 'PauseEnde' ,'Kommen', 'Gehen' ),
INDEX (`userID`)
)
~~~
Danach kann in die Tabelle wie folgt eingetragen werden:
~~~SQL
INSERT INTO `filter` ( `userID` , `filter` ) VALUES ( 1, 'PauseBeginn' );
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn
Filter hinzufügen:
~~~SQL
UPDATE `filter` SET `filter` = CONCAT(`filter` , ',', 'PauseEnde') WHERE `userID`=1;
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn, PauseEnde
Index setzen und nach Filter abfragen:
~~~SQL
ALTER TABLE `filter` ADD INDEX `filter` ( `filter` )
SELECT `userID`, `filter` FROM `filter` WHERE FIND_IN_SET( 'PauseEnde',`filter` );
~~~
userID|filter
1|PauseBeginn, PauseEnde
Versuch eines bei der Spaltendefinition nicht definierten Eintrages:
~~~
UPDATE `filter` SET `filter` = 'Nicht Definiert' WHERE `userID`=1;
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|
Mehrere Werte in einem Feld speichern?
bearbeitet von ursus contionabundoEs gibt als Datentype das "[SET](https://dev.mysql.com/doc/refman/8.0/en/set.html)".
~~~sql
CREATE TABLE `filter` (
`userID` INT,
`filter` SET('PauseBeginn', 'PauseEnde' ,'Kommen', 'Gehen' ),
INDEX (`userID`)
)
~~~
Danach kann in die Tabelle wie folgt eingetragen werden:
~~~SQL
INSERT INTO `filter` ( `userID` , `filter` ) VALUES ( 1, 'PauseBeginn' );
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn
Filter hinzufügen:
~~~SQL
UPDATE `filter` SET `filter` = CONCAT(`filter` , ',', 'PauseEnde') WHERE `userID`=1;
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn, PauseEnde
Index setzen und nach Filter abfragen:
~~~SQL
ALTER TABLE `filter` ADD INDEX `filter` ( `filter` )
SELECT `userID`, `filter` FROM `filter` WHERE FIND_IN_SET( 'PauseEnde',`filter` );
~~~
userID|filter
1|PauseBeginn, PauseEnde
Versuch eines bei der Spaltendefinition nicht definierten Eintrages:
~~~
UPDATE `filter` SET `filter` = 'Nicht Definiert' WHERE `userID`=1;
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|
Mehrere Werte in einem Feld speichern?
bearbeitet von ursus contionabundoEs gibt als Datentype das "[SET](https://dev.mysql.com/doc/refman/8.0/en/set.html)".
~~~sql
CREATE TABLE `filter` (
`userID` INT,
`filter` SET('PauseBeginn', 'PauseEnde' ,'Kommen', 'Gehen' ),
INDEX (`userID`)
)
~~~
Danach kann in die Tabelle wie folgt eingetragen werden:
~~~SQL
INSERT INTO `filter` ( `userID` , `filter` ) VALUES ( 1, 'PauseBeginn' );
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn
Filter hinzufügen:
~~~SQL
UPDATE `filter` SET `filter` = CONCAT(`filter` , ',', 'PauseEnde') WHERE `userID`=1;
SELECT `filter` FROM `filter` WHERE `userID` = 1;
~~~
userID|filter
1|PauseBeginn, PauseEnde
Index setzen und nach Filter abfragen:
~~~SQL
ALTER TABLE `filter` ADD INDEX `filter` ( `filter` )
SELECT `userID`, `filter` FROM `filter` WHERE FIND_IN_SET( 'PauseEnde',`filter` );
~~~
userID|filter
1|PauseBeginn, PauseEnde