[ erminmo @ 10.02.2012. 18:27 ] @
Ovako u mysql bazi imam unesene brojeve na slijedeci nacin:

ID Brojevi
1 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35
2 2.9.5.4.8.10.11.12.13.48.44.46.33.34.35.36.17.18.19.20.26.29.28.27.22.29.38.39.40.41.42.43.48.45.47


da ne brojite tu se nalazi 35 brojeva u jednom redu, e kako sad da mi u php-u, accessu, ili u nekom programu ko zna da iz ove baze svako 2 minute izvlaci 6 brojeva.

Unaprijed hvala
[ bogdan.kecman @ 11.02.2012. 06:55 ] @
imas u bazi jedno polje u kome se nalazi string "1.2.3.4...." ... nesto si ti tu gadno pogresio
[ Shinhan @ 13.02.2012. 08:02 ] @
1) Normalizuj (da bude samo jedan broj po redu)

2) "SELECT id FROM imetabele ORDER BY RAND() LIMIT 6"
[ Predrag Supurovic @ 13.02.2012. 08:45 ] @
Citat:
Shinhan:2) "SELECT id FROM imetabele ORDER BY RAND() LIMIT 6"


Ako je iole veća tabela, ovo neće valjati. Uraditi rand nad celom tabelom da bi se uzelo prvih sest slogova nije zdravo.

Na stranu to da s obzirom na njegov model baze, to i ne može da se uradi tako. Kao što reše bogdan, neto je on tu gadno pogrešio u modeliranju.
[ erminmo @ 13.02.2012. 08:52 ] @
pa dajte neki prijedlog ili nesto slicno zavrseno pa cu prepravit...
[ bantu @ 13.02.2012. 11:50 ] @
Na primjer:

Code:

CREATE TABLE tvoja_tabela (
  id INT UNSIGNED NOT NULL ,
  PRIMARY KEY (id)
 ) ENGINE=InnoDB;
  
CREATE TABLE brojevi (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  id_tvoja_tabela INT UNSIGNED NOT NULL,
  broj INT UNSIGNED NOT NULL,
  PRIMARY KEY (id),
  KEY tvoja_tabela_fk (id_tvoja_tabela),
  CONSTRAINT tvoja_tabela_fk FOREIGN KEY (id_tvoja_tabela) REFERENCES tvoja_tabela (id) ON UPDATE CASCADE ON DELETE RESTRICT
 )ENGINE=InnoDB;

SELECT b.id_tvoja_tabela, b.broj
FROM tvoja_tabela t, brojevi b
WHERE t.id=b.id_tvoja_tabela
AND t.id=1
ORDER BY RAND() LIMIT 6;