hallo,
ich hab da ein kleines problem:
ich arbeite gerade an einem kleinen b2b shop für t-shirts.
für die startseite möchte ich eine bestimmte anzahl artikel zufällig ausgeben. allerdings soll kein grundartikel doppelt vorkommen. ein auszug aus der tabelle:
meine abfrage:
soweit so gut, es funktioniert. ABER trotz 'LIMIT 4' erhalte ich nicht immer 4 (einzigartige) artikel in der ausgabe. es sind auch mal 3 oder 2.
es sollte also zB => B10, B620, B100, B200 vorkommen aber nicht B10, B620, B10, B200 (was allerdings passiert) ... ich bin verwirrt oder kann ich DISTINCT nicht mit REGEXP zusammenfassen?
PS: DB MySQL 4.0.12
ich hab da ein kleines problem:
ich arbeite gerade an einem kleinen b2b shop für t-shirts.
für die startseite möchte ich eine bestimmte anzahl artikel zufällig ausgeben. allerdings soll kein grundartikel doppelt vorkommen. ein auszug aus der tabelle:
INSERT INTO bas_price VALUES ('B100ASL', 'AS', 'L', ...);
INSERT INTO bas_price VALUES ('B100ASM', 'AS', 'M',...);
INSERT INTO bas_price VALUES ('B10ASS', 'AS', 'S', ...);
INSERT INTO bas_price VALUES ('B200ASXL', 'AS', 'XL', ...);
INSERT INTO bas_price VALUES ('B200ASXXL', 'AS', 'XXL',...);
...
INSERT INTO bas_price VALUES ('B100ASM', 'AS', 'M',...);
INSERT INTO bas_price VALUES ('B10ASS', 'AS', 'S', ...);
INSERT INTO bas_price VALUES ('B200ASXL', 'AS', 'XL', ...);
INSERT INTO bas_price VALUES ('B200ASXXL', 'AS', 'XXL',...);
...
PHP-Code:
$sql = 'SELECT
DISTINCT (artnr REGEXP "B[0-9]{2,3}") listart,
artnr,
ps1
FROM price
ORDER BY rand()
LIMIT 4';
/* plan b ... ergebnis nur 1 datensatz kommt zurück
$sql = 'SELECT
artnr,
ps1
FROM price
GROUP BY (artnr REGEXP "B[0-9]{2,3}")
ORDER BY rand()
LIMIT 4';
*/
es sollte also zB => B10, B620, B100, B200 vorkommen aber nicht B10, B620, B10, B200 (was allerdings passiert) ... ich bin verwirrt oder kann ich DISTINCT nicht mit REGEXP zusammenfassen?
PS: DB MySQL 4.0.12
Kommentar