webForumDet fria alternativet

söka efter nummer i SQL

16 svar · 284 visningar · startad av Pace

PaceMedlem sedan juni 20015 947 inlägg
#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

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

GunnarDMedlem sedan juni 20014 250 inlägg
#2

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

------------------
If you can't convince them, confuse them.

LarsGMedlem sedan dec. 200012 465 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

------------------
essentitia preter non sans multiplicandum

PaceMedlem sedan juni 20015 947 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

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

LarsGMedlem sedan dec. 200012 465 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. ;))

------------------
essentitia preter non sans multiplicandum

PaceMedlem sedan juni 20015 947 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

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

LarsGMedlem sedan dec. 200012 465 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

------------------
essentitia preter non sans multiplicandum

PaceMedlem sedan juni 20015 947 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]

LarsGMedlem sedan dec. 200012 465 inlägg
#9

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

------------------
essentitia preter non sans multiplicandum

PaceMedlem sedan juni 20015 947 inlägg
#10

Men mina fält är ju null.

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

LarsGMedlem sedan dec. 200012 465 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?

------------------
essentitia preter non sans multiplicandum

PaceMedlem sedan juni 20015 947 inlägg
#12

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

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

LarsGMedlem sedan dec. 200012 465 inlägg
#13

Nej.

Predikatet

eng <> null

är aldrig sant.

eng = null

är heller aldrig sant.

------------------
essentitia preter non sans multiplicandum

spangoMedlem sedan juni 20006 147 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? :)

------------------
You can be a coward for a few minutes, or dead forever. /Rincewind

jorgenMedlem sedan feb. 20012 179 inlägg
#15

Fy vad pedagogisk du är Spango :)

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

mvh Jörgen

------------------
Varför bråka när man kan kramas?

PaceMedlem sedan juni 20015 947 inlägg
#16

Okej, jag förstår! :e

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

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

spangoMedlem sedan juni 20006 147 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å.

------------------
You can be a coward for a few minutes, or dead forever. /Rincewind

Genererad på 503 ms · cache AV · v20260730165559-full.f96bc7eb