Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]auto_increment 01
Forum PHP.pl > Forum > Przedszkole
Randallmaster
Witam,
jak ustawić auto_increment aby naliczało 01,02,03,04 a nie 1,2,3,4?
nospor
Ustaw sobie typ ZEROFILL.
Nie mniej jednak patrzac na ten i poprzednie posty, to chyba coś napsules w tej swojej apce... Moze warto by to przemyslec?
Randallmaster
pobieram dane po ip przykładowo

8 - test
8.12 - test 12
8.14 - test 13

80 - test 80

muszę pobierać dane po ip np. ip like '8%'
to zabiera mi też test 80

mój warunek:
case when parentID = 0 and length(ip) < 2 then concat('0', ip) else ip end like '08%'"
08 jest zmieniane przed dodaniem odpowiednio dla danej.
I w tym przypadku pod ip 8.12 i 8.14 wyświetla poprawnie, ale w ip = 8 gdzie powinno pokazać dane 8.12 i 8.14 jest puste bo pobiera 08

mam nadzieje że dobrze wytłumaczyłem

nie idzie tego pogodzić ;/
nospor
Bo to sie robi tak:
ip like '8.%'

I dobrze by bylo bys cale IP zapisywal z kropką na koncu czyli nie:
8.12
a
8.12.
Wowczas nie ma zadego problemu z pobieraniem danych
Randallmaster
no tak ale jak zrobię z kropką to już nie pokaże wartości dla 8.12 bo porównanie będzie z kropką 8.12.

nospor
Nie rozumiem.... robiac
ip like '8.%'
to 8.12. lapie sie w to. W czym problem?
Randallmaster
to jest w pętli wartości(ip porównywane) same wskakują smile.gif

później jest np ip like '8.12.%'

ale dopisałem or ip like '8.12' (z innymi warunkami przed or) i pobiera brakującą wartość smile.gif

sprawdzam czy mam ok.

rozumiem że przy or aby mi nie wywaliło innych rekordów to muszę zrobić tak (chodzi mi czy muszę dublować act i type bo jak nie zdublowałem to doskoczyły rekordy):

act = 'Y' and type = '1' and ip like '8.12.%' or act = 'Y' and type = '1' and ip like '8.12'

dobrze?
nospor
Cytat
ale dopisałem or ip like '8.12' (z innymi warunkami przed or) i pobiera brakującą wartość
Ale po co??
Pisalem ci, ze w bazie masz zapisywac tez kropke na koncu. Czyli w bazie ma byc tak:
8.12.
a nie:
8.12

Wowczas jeden like lapie ci wszystko. Dodajac kolejne niepotrzebne OR tylko zamulasz zapytanie.
Randallmaster
nie rozumiesz co chce osiągnąć smile.gif

8 - 10 zł
8.12 - 5 zł
8.12.13 - 2 zł
8.14 - 5 zł

pętla nadaje ip.
nadrzędne ip ma liczyć sumę tego co jest pod nim plus jego samego.

piersze pytanie:
select * from tabela here act = 'Y' and type = '1' and ip like '8.%' or act = 'Y' and type = '1' and ip like '8';
pokaże:
8 - 22 zł

drugie pytanie:
select * from tabela here act = 'Y' and type = '1' and ip like '8.12.%' or act = 'Y' and type = '1' and ip like '8.12';
pokaże 8.12 = 7 zł

gdybym zrobił tyko z kropką:
select * from tabela here act = 'Y' and type = '1' and ip like '8.12.%' or act = 'Y';
pokaże mi tylko 2 zł a potrzebuje 7 zł.

ciężko jest wytłumaczyć pisząc smile.gif mam nadzieje że zrozumiale.

to jest podzapytanie do pętli ponieważ w jednym zapytaniu nie da się tego zrobić.

dodam że or nie zamuliło zapytania pętla generuje się szybko smile.gif
nospor
ja rozumiem co chcesz zrobic. I tylumacze ci, by zrobic to optymalnie, w bazie swoje IP masz zapisywac z kropką na koncu ip. Wowczas starczy tylko jeden like jak ci podalem i twoje sumy wyjdą tak jak trzeba. Ale ty mnie nie sluchasz z niewiadomych dla mnie przyczyn :/

Dla:
8. - 10 zł
8.12. - 5 zł
8.12.13. - 2 zł
8.14. - 5 zł

zapytanie
select * from tabela here act = 'Y' and type = '1' and ip like '8.12.%'
zwroci ci 7 a nie 2. Przyjmij to wkoncu do wiadomosci :/

Cytat
dodam że or nie zamuliło zapytania pętla generuje się szybko
Bo masz dwwa rekordy na skrzyz..... przy wiekszej liczbie poczulbys roznice
Randallmaster
ale ja nie mam kropek na końcu każdego ip smile.gif a już tabela przygotowana więc nie mam czasu na zmiany... sad.gif

rekordów jest około 2 tys
nospor
Cytat
ale ja nie mam kropek na końcu każdego ip
Dlatego ci wlasnie pisalem, bys zrobil.....
Nie masz czasu? A na rozwalanie struktury ZEROFILLem to miales czas?
Poza tym dodanie kropek do aktualnych wpisow w bazie to zwykly jeden UPDATE
Randallmaster
racja dodanie kropek to jeden update smile.gif zastosuje się do tego. Dziękuję za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.