webForumDet fria alternativet

Select med bit fält

6 svar · 247 visningar · startad av HeHo

HeHoMedlem sedan apr. 2000277 inlägg
#1

Jag är smått förvirrad just nu...
Har en select som ser ut så här:

SELECT film, mark FROM Bil WHERE mark=1

Den funkar inte......får bara timeout!
Men om jag gör om frågan till tex

SELECT film, mark FROM Bil WHERE film LIKE '743131%'

Så får jag svar på en gång.
Beror detta på att mark är av typen bit
och att film är av typen char?
Går det inte att ha ett vilkor med ett bit fält eller?

------------------

Den som söker, måste leta!

@ndersMedlem sedan juni 200032 969 inlägg
#2

Hmm. Låter lite knäppt.

Prova:

SELECT film, mark FROM Bil WHERE mark=true

eller helt sonika

SELECT film, mark FROM Bil WHERE mark

Just att det blir timeout är himla märkligt.

Mvh,

HeHoMedlem sedan apr. 2000277 inlägg
#3

Hmm...det funkar inte!
när jag skriver bara mark
får jag felmeddelande:

Incorrect syntax near 'mark'

När jag skriver mark=true får jag:

Invalid column name 'true'

Ok! Timeouten beror nog på IIS:en.....jag testade att köra frågan i SQL Query Analyzern och då fick jag svar efter 2:30 min.
Med samma fråga fast med villkoret på film gav 1607 träffar efter 0:00:11 min.

Så jag är ändå förvirrad.....varför tar det så lång tid med ett villkor på ett bit fält?

------------------

Den som söker, måste leta!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det beror väl på vad som är indexerat eller inte.

SQL server har inte stöd för booleska datatyper, så det går inte att använda true/false.

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

HeHoMedlem sedan apr. 2000277 inlägg
#5

OK! Då är jag med....alltså ska man inte göra ett villkor på ett bit fält eftersom, vad jag kan förstå, man inte
kan indexera ett bit fält.
Har jag förstått det rätt?

------------------

Den som söker, måste leta!

@ndersMedlem sedan juni 200032 969 inlägg
#6

SQL server har inte stöd för booleska datatyper, så det går inte att använda true/false.

Givetvis är det så. Tack för den kunskapen, LarsG. :)

Mvh,

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Det går nog att indexera ett bitfält. Sen så hänger det delvis ihop med hur data är fördelat om det blir effektivt att använda indexet.

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

136 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)