jolam
8.08.2009, 13:50:41
W mojej bazie danych SQLite dobiera identyfikatory dla nowych rekordów po kolei od 1, a czy można zrobić aby dobierał od 1000? Czyli żeby wszystkie miały 4cyfry? Np 1000, 1001, 1002, albo 0001, 0002, 0003? Przyadłoby mi się to do drzrewek ip. Aby dało się sensownie sortować wedle tych ip.
pozdrawiam Jola
Cytat
Przyadłoby mi się to do drzrewek ip. Aby dało się sensownie sortować wedle tych ip.
To znaczy?
wookieb
8.08.2009, 19:11:33
Cytat(erix @ 8.08.2009, 20:09:26 )

To znaczy?
Problem z naturalnym sortowaniem ciągów tekstowych
Co do tematu proponuję wykonać coś takiego w php
http://pl2.php.net/manual/pl/function.str-pad.php
jolam
9.08.2009, 09:19:42
wookieb właśnie o to sortowanie chodzi! Tą funkcje PHP znam. Ale wolałabym, żeby zrobić to w samym SQL. Używam SQLite, czy da się już przy deklarowaniu kolumny ustawić PRIMARY KEY z zerami na początku, czyli 0001, 0002, 0003? Albo jak ustawić startowy identyfikator na 1000? Wtedy miałabym 1001, 1002,1003.
pozdrawiam i proszę gorąco o odpowiedź Jola
zegarek84
9.08.2009, 09:36:45
ale jeśli ustawisz pole na PRIMARY KEY AUTOINCREMENT i pierwszy wpis ręcznie na 999 to następne same będą kolejno czyli 1000 itd. - lub pierwszy wpis ręcznie na 1000 itd. - w każdym bądź razie tekst jest wolniejszy od liczb... a jeśli już bardzo chcesz operować na tekście to możesz akurat w sqlite do zapytań podpiąć własne zdefiniowane funkcje w php....
viking
9.08.2009, 09:37:28
Wstaw pierwszy rekord dla primary jawnie jako 1000.
CREATE TABLE "test" ("id" INTEGER PRIMARY KEY NOT NULL , "test" VARCHAR);
INSERT.... (1000, 'ss');
INSERT....('yyy');
jolam
9.08.2009, 09:46:25
viking dziękuję Ci. Nie pomyślałam, a to faktycznie powinno zadziałać. Szkoda, że nie ma jakiegoś bardziej uniwersalnego rozwiązania, już na etapie deklarowania kolumny.
Czy mógłbyś zajrzeć rónież na
http://forum.php.pl/index.php?showtopic=127597&hl=pozdrawiam Jola
maly_swd
9.08.2009, 13:18:11
CREATE TABLE `test`.`tabelka` (
`id` int(4) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ....
a czemu nie uzyc zerofill ? przeciez to idealne dla tego rozwiazania, deklaracja int(4) oznacza do ilu ma wypelniac zerami.
Jesli iD wstawimy 1 to dostaniemy 0001
viking
9.08.2009, 13:29:03
Pewnie dlatego że sqlite to nie mysql