Gå til innhold

Problemer med WHERE og BETWEEN


Anbefalte innlegg

Skrevet (endret)

Jeg har en tabell med en kolonne og 20 rader der innholdet til radene er 'A1' til 'A20'.

Det jeg nå prøver på er å få til to spørringer der den ene gir verdiene 'A1' til 'A10' og den andre gir verdiene 'A11' til 'A20'. Det jeg har kommet fram til nå er dette:

 

SELECT * FROM `tabell` WHERE `kolonne1` BETWEEN 'A1' AND 'A10'");

Denne spørringen gir bare outputene 'A1' og 'A10'.

 

SELECT * FROM `tabell` WHERE `kolonne1` BETWEEN 'A1' AND 'A9'");

Denne spørringen gir alle outputene fra 'A1' til 'A20'.

 

SELECT * FROM `tabell` WHERE `kolonne1` BETWEEN 'A1' AND 'A9' LIMIT 10  ");

Denne spørringen fungerer helt fint og jeg får outputene 'A1' til 'A10' akkurat som jeg vil.

Men så kommer problemet.

 

SELECT * FROM `tabell` WHERE `kolonne1` BETWEEN 'A11' AND 'A20'");

Denne spørringen gir outputene 'A2' og 'A11' til 'A20'. Hvorfor i alle dager er 'A2' med der? Hva er det jeg gjør galt. Er det eventuelt av annen måte å gjøre dette på?

Endret av alec1
Videoannonse
Annonse
Skrevet

A2 blir mindre enn A20 men større en A11 ja, så klart, ganske logisk når jeg tenker meg om 2/3 ganger. :wee: Løste problemet med å sette 0 forran alle verdiene med ett siffer :) Nå er det 'A01' til 'A20' og da funker det utmerket.

  • 4 uker senere...
Skrevet

Ja er fordi det som står over.

 

Du kan jo gjøre det om til nummer og fjerne "A" en, så blir det slik du vil ha

 

where to_number(substr(kolonne,2,3)) between '10' and '20'

 

Nå er det nummer og "A" er borte.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...