Ich habe jetzt alle 5er Kombinationen in eine Tabelle gespeichert.
Code:
CREATE TABLE `elementscomb`.`elements5` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`element1` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`element2` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`element3` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`element4` TINYINT UNSIGNED NOT NULL DEFAULT 0,
`element5` TINYINT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY(`id`),
INDEX `hand`(`element1`, `element2`, `element3`, `element4`, `element5`)
)
ENGINE = MYISAM;
Um nun alle Kombinationen mit den Elementen 2 und 3 abzufragen tätige ich nun folgende Abfrage:
Code:
SELECT * from elements5 where (element1=2 or element2=2 or element3=2 or element4=2 or element5=2) and (element1=3 or element2=3 or element3=3 or element4=3 or element5=3);
Das ist zwar im Moment eine gangbare Lösung (vor allem mit autogenerierten Abfragen), aber dass muss doch irgendwie besser gehen, oder?
Vor allem Abfrageperformance sollte irgendwie gesteigert werden und Speicherplatzmäßig ist es irgendwie nicht so richtig gut.
Die Tabelle hat jetzt bei ca. 50 Elementen ungefähr 2,6 Mio. rows. Bei 6 aus 50 oder 7 aus 50 wird das noch schlimmer.
Hat da jemand eine Idee?
mfg, christian
Lesezeichen