webForumDet fria alternativet
Logga in / Bli medlem

söka efter nummer i SQL

Databaser & SQL

16 svar · 284 visningar · startad av Pace

Medlem sedan juni 20019 024 inlägg
Frågan#1

Hmmm, börjar bli lite besviken på att MySQL inte stöder de SQL satser jag försöker använda...
Nåja.

Den här SQL satsen använder jag för att ta ut ord som börjar på en siffra. Funkar utmärkt i Access, men hur ska man göra i MySQL (förutom att skriva WHERE ord LIKE '0%' OR ord LIKE '%1' hela tiden)

SELECT ord, eng, beskrivning, lank FROM ordlista WHERE ord LIKE '[0-9]%' ORDER BY ord ASC, eng ASC
Medlem sedan juni 20014 290 inlägg
#2

Står i deras manualsidor: http://www.mysql.com/doc/P/a/Pattern_matching.html

Medlem sedan dec. 200012 464 inlägg
#3
SELECT ord, eng, beskrivning, lank FROM ordlista WHERE substring(ord from 1 for 1) between '0' and '9' ORDER BY ord ASC, eng ASC
Medlem sedan juni 20019 024 inlägg
#4

Ah! Visste väl att det fanns ett mer användarvänligt sätt! Tackar! :)

Visste inte riktigt vad SUBSTRING var för något så jag kollade upp det i manualen: vilket var samma sak som MID funktionen. Dock ändrade jag så att jag använder LEFT istället... lite smidigare.

SELECT ord, eng, beskrivning, lank FROM ordlista WHERE LEFT(ord, 1) BETWEEN '0' AND '9' ORDER BY ord ASC, eng ASC
Medlem sedan dec. 200012 464 inlägg
#5

Enda anledningen till att jag använder substring (och med den syntaxen) är att den är ANSI-kompatibel, vilket left inte är. (Så mycket nytta man nu har av det. ;))

Medlem sedan juni 20019 024 inlägg
#6

Hmmmm, varför fungerar inte det här? Ingenting retuneras.

SELECT ord, eng, beskrivning, lank FROM ordlista WHERE eng <> null ORDER BY eng ASC
Medlem sedan dec. 200012 464 inlägg
#7

Inget är skilt från null (inte ens null.)

SELECT ord, eng, beskrivning, lank FROM ordlista WHERE eng is not null ORDER BY eng ASC
Medlem sedan juni 20019 024 inlägg
#8

Konstigt... varför? :q

[r] Fick använda
SELECT ord, eng, beskrivning, lank FROM ordlista WHERE eng <> '' ORDER BY eng ASC istället.

[Redigerat av Pace den 21 okt 2001]

Medlem sedan dec. 200012 464 inlägg
#9

Vadå konstigt? Skilj på null och tom sträng.

Medlem sedan juni 20019 024 inlägg
#10

Men mina fält är ju null.

Medlem sedan dec. 200012 464 inlägg
#11

Låtom oss backa något, du har tappat mig.

Om du har fält som är null så returneras de inte om du skriver

eng <> ''

eller vad?

Medlem sedan juni 20019 024 inlägg
#12

Jo, de gör det, men det konstiga är att de ÄR null, så WHERE eng <> null borde fungera...?!

Medlem sedan dec. 200012 464 inlägg
#13

Nej.

Predikatet

eng <> null

är aldrig sant.

eng = null

är heller aldrig sant.

Medlem sedan juni 20008 205 inlägg
#14

... och det är för att null helt enkelt betyder "okänt" eller "icke angivet" i databasernas underbara värld. Om Lisa har fem kronor, och du inte har en aning om hur mycket pengar Pelle har, är då Lisa.pengar <> Pelle.pengar sant? :)

Medlem sedan feb. 20012 412 inlägg
#15

Fy vad pedagogisk du är Spango :)

Snyggt jobbat, tom jag förstår :e

mvh Jörgen

Medlem sedan juni 20019 024 inlägg
#16

Okej, jag förstår! :e

Men hur kommer det sig att Access begriper sig på mig? ;) :q

Medlem sedan juni 20008 205 inlägg
#17

Det kan kanske hända att de bryter mot ansi-standarden. Inte för att någon någonsin tidigare gjort det ;) , men det kan tänkas vara så.

260 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)