Desetinné číslo v dotazu mysql? Proč nejde? – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Desetinné číslo v dotazu mysql? Proč nejde? – PHP – Fórum – Programujte.comDesetinné číslo v dotazu mysql? Proč nejde? – PHP – Fórum – Programujte.com

 

martinb19840
Newbie
11. 7. 2014   #1
-
0
-

Zdravím, potřeboval bych zda někdo nevíte následující. Mám mysql tabulku se sloupcem typu FLOAT, do tohoto sloupce načítám desetinná čísla a následně potřebuji rozchodit tento dotaz:

 $dotaz = "SELECT * FROM tabulka WHERE a='hodnota' AND id = '32.001'";

Takový dotaz se ale nikdy neprovede, když je uvedeno id jako desetinné číslo a přitom v tabulce je id rovno hodnotě 32.001.... Kde dělám chybu? Jakmile použiji číslo bez desetinných míst, vše funguje... Moc děkuju za rady.

Nahlásit jako SPAM
IP: 89.176.190.–
Kit+15
Guru
11. 7. 2014   #2
-
0
-

#1 martinb1984
Pokud použiješ DECIMAL, tak to fungovat bude. Porovnávat FLOAT na rovnost je nesmysl, to funguje jen někdy. Viz IEEE 754.

Je zvykem, že ve sloupci pojmenovaném "id" je primární klíč typu integer. Je to dobrý zvyk.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
martinb19840
Newbie
11. 7. 2014   #3
-
0
-

Bohužel situace mě donutila používat v primárním klíči desetinná čísla - nejsem z toho nadšený, ale je to tak. Jak mám tedy napsat konkrétní SELECT s použitím decimal?

Nahlásit jako SPAM
IP: 89.176.190.–
Kit+15
Guru
11. 7. 2014   #4
-
0
-

#3 martinb1984
Přetypuj sloupec id na DECIMAL(10,3) nebo třeba VARCHAR(10). Stejně hodnotu '32.001' dáváš do apostrofů jako string.

Tu tabulku musel navrhovat úplný ignorant.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
martinb19840
Newbie
11. 7. 2014   #5
-
0
-

jo sry, ty myslíš datový typ decimal.. Ok, vyzkouším, dík. Už mi z toho jebe dneska..

Nahlásit jako SPAM
IP: 89.176.190.–
Kit+15
Guru
11. 7. 2014   #6
-
0
-

#5 martinb1984
Co v tom "id" vlastně máš? Označení položky artiklu?

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
martinb19840
Newbie
11. 7. 2014   #7
-
0
-

~~ Chyba dotazu:
#1063 - Incorrect column specifier for column 'id_nabidka'

nemohu to předělat na decimal - dělám v phpmyadminu..

Nahlásit jako SPAM
IP: 89.176.190.–
martinb19840
Newbie
11. 7. 2014   #8
-
0
-

Problémem je auto_increment :(. V typu decimal nelze použít auto_increment? V takovém případě je tento datový typ pro ID nepoužitelný... Za jakých podmínek tedy mohu dosáhnout rovnosti FLOAT? Probíhá nějaké zaokrouhlení či něco podobného?

Nahlásit jako SPAM
IP: 89.176.190.–
martinb19840
Newbie
11. 7. 2014   #9
-
0
-

:D zase jsem si musel poradit sám :D Je to jednoduché - použití DECIMAL na ID je nemožné kvůli chybějící A.I., ale pokud je definován přesný počet desetinných míst u typu DOUBLE či FLOAT, hle, rovnost je na světě a problém vyřešen. Takže celý problém byl jen a pouze v tom, že jsem nenadefinoval počet desetinných míst u typu FLOAT... Toť vše. Každopádně díky.

Nahlásit jako SPAM
IP: 89.176.190.–
Kit+15
Guru
11. 7. 2014   #10
-
0
-

#9 martinb1984
"id" se dělá vždy integer. Jiný datový typ se pro tento sloupec nepoužívá.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý