/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
is numeric function i mysql?
Fra : jonas@delfs.dk


Dato : 16-03-06 13:23

Hej

Er der en form for is_numeric function i MySQL så jeg kan nøjes med
at hente rækker hvor et bestemt felt er en numerisk værdi? Det er et
varchar felt hvor der kan være enten en kort text-streng eller et tal.
Har tjekket manualen og google uden at kunne få svar.

På forhånd tak!

Mvh. Jonas


 
 
Henrik Stidsen (16-03-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 16-03-06 13:36

Der er svjv ikke nogen decideret funktion til det, men det er rimelig
nemt at gøre med en regexp funktion:
SELECT * FROM table WHERE value REGEXP("^[0-9]*$")

Vælger rækker fra tabellen table hvor feltet value kun indeholder
tallene 0-9 et vilkårligt antal gange.


Peter Brodersen (17-03-2006)
Kommentar
Fra : Peter Brodersen


Dato : 17-03-06 07:45

On 16 Mar 2006 04:35:59 -0800, "Henrik Stidsen"
<henrikstidsen@gmail.com> wrote:

>SELECT * FROM table WHERE value REGEXP("^[0-9]*$")
>
>Vælger rækker fra tabellen table hvor feltet value kun indeholder
>tallene 0-9 et vilkårligt antal gange.

Mindst én gang er vel at foretrække, idet feltet også kunne være tomt
(og så vil "^[0-9]*$" også matche). Derudover nævnes det heller ikke
om værdien skal kunne være negativ, fx -30. Men hvis det kun skal være
ikke-negative tal, og kun heltal, så:

SELECT * FROM table WHERE value REGEXP "^[0-9]+$"

(der dog også accepterer fx "000")
--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

Henrik Stidsen (17-03-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 17-03-06 09:40

SELECT * FROM table WHERE value REGEXP "^-?[1-9][0-9]*,?[0-9]*$"

Tager højde for negative tal, kommatal og ignorerer tal der starter
med et 0 :)


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste