[MySQL] select ... where ...

Pagina: 1
Acties:

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Ik wil een subset opvragen uit een table, mbv. WHERE, en wel:

code:
1
select * from table where something = 0.4


Maar nu blijkt dat dat niet werkt. '0.4' komt weldegelijk voor in de table, maar alleen waardes zoals 0.5; 1; 1.5 enzo werken, maar 0.4; 1.3 etc. werken niet: die geven een leeg resultaat terug.

Volgens mij is 't iets heel simpels, maar ik vat 'm effe niet...
Wat doe ik fout?

Edit: 'something' is gedifinieerd als float.

[ Voor 9% gewijzigd door Explore op 12-12-2002 13:56 ]

[ specs ] [ Tweaker gallery ]


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

'0.4' :?

Doet iets met Cloud (MS/IBM)


  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Nee, dat had ik (natuurlijk) al geprobeerd, maar dat geeft ook een leeg resultaat.

[ specs ] [ Tweaker gallery ]


  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

ms een komma ipv een punt.. :?

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Ben je wel zeker dat het 0.4 is in de databank? Ben je zeker dat er op die kolom geen masker ligt dat hij bv slechts 1 cijfer na de komma toont?
Kan het niet zijn dat het bv als 0.41 opgeslagen is in de DB ipv als 0.4?

Kijk eens met > 0.4 en < 0.4 of het er dan tussen zit oid.

https://fgheysels.github.io/


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

Explore schreef op 12 December 2002 @ 14:01:
[...]


Nee, dat had ik (natuurlijk) al geprobeerd, maar dat geeft ook een leeg resultaat.

stond er niet bij ;)
* D2k huppelt naar de manual

Doet iets met Cloud (MS/IBM)


  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Stond er inderdaad niet bij. :)
'Groter dan' heb ik ook geprobeerd, bijvoorbeeld:

code:
1
... where something >= 0.8 and someting < 0.9


Geeft rows waar 'something' zowel 0.8 als 0.9 is - wat niet is waar ik om vroeg.

Overal wordt expliciet 1 cijfer achter de comma gebruikt. 0.41 enzo komt dus niet voor.

Is dit een bug in MySQL?
PHP geeft me dezelfde resultaten, zoals ik al verwacht had (ik test nu vanuit MySQL-Front).

Edit: met een comma werkt het niet. Dan krijg je een foutmelding van MySQL.

[ Voor 13% gewijzigd door Explore op 12-12-2002 14:09 ]

[ specs ] [ Tweaker gallery ]


  • Rainmaker
  • Registratie: Augustus 2000
  • Laatst online: 14-07-2024

Rainmaker

RHCDS

welke sql server versie gebruik je? MIsschien es opnieuw erop zetten, want zo te zien pakt ie operators niet goed...

We are pentium of borg. Division is futile. You will be approximated.


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:36
Rainmaker schreef op 12 december 2002 @ 14:10:
welke sql server versie gebruik je? MIsschien es opnieuw erop zetten, want zo te zien pakt ie operators niet goed...


Het gaat dus over MySQL, niet over SQL Server.....

https://fgheysels.github.io/


  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
MySQL-Front zegt versie 3.23.41, PHP's phpinfo() meldt versie 3.23.39.
Ik zie net dat versie MySQL 3.23.54 al uit is. Ik loop dus een beetje achter op m'n server hier.
Is er bekend dat dit een bug was in de versie die ik heb draaien? (effe uitpluizen...)

[ specs ] [ Tweaker gallery ]


  • Capa
  • Registratie: November 2002
  • Laatst online: 26-08 09:34
probeer eens uit te schrijven wat er precies staat in die tabel.
tussen ' ' had je al geprobeerd zei je?
en de dubbele quotjes? ( " " )

  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

Explore schreef op 12 december 2002 @ 14:15:
MySQL-Front zegt versie 3.23.41, PHP's phpinfo() meldt versie 3.23.39.
Ik zie net dat versie MySQL 3.23.54 al uit is. Ik loop dus een beetje achter op m'n server hier.
Is er bekend dat dit een bug was in de versie die ik heb draaien? (effe uitpluizen...)
Onwaarschijnlijk dat er zon grote bug in zit. Dat zullen ze er met versie 1.0 al uit hebben gehaald. Zit misschien iets mis in je tabellen. Heb je wel primary key enzo?

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Ik heb alle mogelijke quotes al geprobeerd - haalt niks uit.

En het leek me al erg onwaarschijnlijk dat dit een bug is en ging er dan ook vanuit dat het aan mij ligt... Ik zal wel iets niet snappen. Maar ik zie dat ik de enige niet ben. :)

Er staat inderdaad een primary key op de ID.

Het is in principe niet nodig om een key op de 'something' kolom te zetten, aangezien dit niet in de code voorkomt (where's op de 'something' kolom)...

[ specs ] [ Tweaker gallery ]


  • Capa
  • Registratie: November 2002
  • Laatst online: 26-08 09:34
waarin wil je het uitschrijven? php, asp of iets dergelijks?

Verwijderd

select * from table where round(something,1) = 0.4

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Ik gebruik nu MySQL-Front om in 1x een paar 100 rows aan te kunnen passen, afhankelijk van de waarde van 'something'. Dit is puur een finetuning issue en zal in de code niet worden gebruikt.

Maaruh: die laatste werkt! round... :)

Bedankt! (Vreemd blijft 't wel... domme floats!)

[ specs ] [ Tweaker gallery ]


Verwijderd

tja komt omdat er allemaal zooi achter de komma staat die je niet ziet :)
merkte zelf dat je round (kolom,7) = 1.4 kon gebruiken, kolom,8 werkte al niet meer.
inderdaad irri.
werkt een ander kolom type niet beter?

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Nee, in de code wordt met die waarde gerekend. En om dan weer te gaan casten naar een float is te omslachtig (vertraagd te veel). Zoals ik al zei gebruik ik deze where-statements alleen voor het finetunen van de database, dus ik kom er verder wel uit zo. Bedankt voor 't meedenken...

[ specs ] [ Tweaker gallery ]


Verwijderd

Uitschrijven:
<?
include("config.inc");
$result = mysql_query("select * from table where something = '0.4'", $db);
$row = mysql_fetch_array($result);
$something = $row["something"];
echo "something=", $something;
?>

[ Voor 35% gewijzigd door Verwijderd op 12-12-2002 15:18 ]

Pagina: 1