Mam pewien problem. Otóż chciałbym zrobić niestandardowe wyciąganie rekordów z bazy danych.
Przykadowa baza danych:
DROP TABLE IF EXISTS `proces`; CREATE TABLE `proces` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user` int(11) DEFAULT NULL, `status` int(1) NOT NULL DEFAULT '0', `proc` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED; INSERT INTO `proces` VALUES (1,1,0,'p1'); INSERT INTO `proces` VALUES (2,1,0,'p2'); INSERT INTO `proces` VALUES (3,1,0,'p3'); INSERT INTO `proces` VALUES (4,2,0,'p4'); INSERT INTO `proces` VALUES (5,2,0,'p5'); INSERT INTO `proces` VALUES (6,3,0,'p6');
System pobiera pojedynczo rekordy(ASC id) a następnie je wykonuje zmieniając status na 1. Cały problem polega na tym że wykonanie jednego procesu trwa około minuty i gdy jeden user doda trochę więcej rekordów to reszta (która doda trochę później) czeka kilkanaście minut na rozpoczęcie wykonywania co ich trochę irytuje.
Chciałbym przerobić zapytanie aby rekordy były wybierane w inny spsób, a mianowicie po jednym rekordzie od każdego usera. Czyli w kolejności następującej(id): 1,4,6,2,5,3
Czy ktoś wie jak takie coś zrobić? Oczywiście w międzyczasie inny user może dodać kolejny proces i wtedy jego pierwszy wpis musi zostać wybrany w ciągu trwającego przejścia po wszystkich userach.
Z góry dzięki,
pozdrzwiam
Żaden "specjalista" nie umie pomóc?
W innych postach jakoś "specjaliści" się wypowiadają.
Ktoś posiada wiedzę wykraczającą ponad podstawowe zapytania?