webForumDet fria alternativet

Räkna antal

Databaser & SQL

14 svar · 641 visningar · startad av Zerephina

Medlem sedan sep. 2000206 inlägg
Frågan#1

Jag har tidigare kört med denna:
(Nu slutade tab att fungera, hoppas att ni kan läsa koden ändå...)

sAntAvk =
" SELECT	COUNT (*) AS  ant        " & _
" FROM tabell                                " & _
" WHERE 	e = " & id & "                " & _
" OR u = " & id & "	                     "

rsAntAvk.Open sAntAvk, MinCon
intAntAvk = CInt(rsAntAvk(0))
rsAntAvk.Close

Men nu när jag bytt DB fungerar den inte.

Check the manual that corresponds to your MySQL server version for the right syntax to use near '(*) AS ant FROM tabell WHERE e =

Blir felmedelandet.

id, e och u har jag satt som INT. Vet inte om det är det som är fel?

Medlem sedan juni 200032 967 inlägg
#2

Skriv ut den färdiga SQL-frågan istället för att exekvera den, då kan du se om det är något värde som saknas. Antagligen har inte id något värde, och då är det därför du får felmeddelandet.

(Om jag var du skulle jag rensa bort all onödig whitespace i SQL-frågan)

Mvh

Medlem sedan sep. 2000206 inlägg
#3

Ett id-värde får jag in. syntax to use near '(*) AS ant FROM tabell WHERE e = 133 OR...

Mellanslagen satt jag bara dit för att tab slutade att fungera och det såg så kluddrigt ut ;)

Medlem sedan juni 200032 967 inlägg
#4

Hur ser alltså den fullständiga SQL-frågan ut?

Medlem sedan sep. 2000206 inlägg
#5
sAntAvk = " SELECT COUNT (*) AS ant FROM tabell WHERE e = " & id & " OR u = " & id & " "
rsAntAvk.Open sAntAvk, MinCon
intAntAvk = CInt(rsAntAvk(0))
rsAntAvk.Close

id kommer in, det kan jag skriva ut också. Det är alltså meningen att det ska räknas hur många gånger id förekommer i e och u.

(You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(*) AS ant FROM tabell WHERE e = 133 OR u = 133' at line)

Medlem sedan sep. 2000206 inlägg
#6

Jag har kört SELECT COUNT (*) på en annan sida och det gick hur bra som helst... Måste vara nått annat som är blurrigt...

Medlem sedan juni 200032 967 inlägg
#7

Av den kod du visar kan jag inte förstå felmeddelandet, jag tycker inte att SQL-frågan är syntaxmässigt felaktig. Dock väntar jag fortfarande på en utskrift av den färdiga SQL-frågan för att vara säker på vad jag säger.

Medlem sedan sep. 2000206 inlägg
#8

SELECT COUNT (*) AS ant FROM tabell WHERE e = 133 OR u = 133

Medlem sedan mars 20015 287 inlägg
#9

Iofs kanske inte det som är felet, men mellanslaget som hakas på längst bak lär ju inte behövas.

sAntAvk = " SELECT COUNT (*) AS ant FROM tabell WHERE e = " & id & " OR u = " & id
Medlem sedan sep. 2000206 inlägg
#10

Tyvärr det hjälpte inte... Men jag önskade ;) Jag har kollat alla namn och det stämmer. Allt är satt som INT också, så det är inget typfel. (?eller?) Månne är det att den ska kolla samma värde i båda kolumnerna?

Medlem sedan dec. 200012 464 inlägg
#11

Mysql tillåter inte att man har blank mellan funktionsnamn och parentes.

SELECT COUNT(*)

Sopprötter (de som implementerar Mysql alltså.)

Flyttas från ASP.

Medlem sedan mars 20032 667 inlägg
#12

LarsG skrev:

Mysql tillåter inte att man har blank mellan funktionsnamn och parentes.

SELECT COUNT(*)

Sopprötter (de som implementerar Mysql alltså.)

Flyttas från ASP.

Säker på detta? Jag la också märke till det mellanslaget, men eftersom jag var osäker på om det hade betydelse testade jag här hemma och det fungerade även med mellanslag. Kanske fixat i de senare versionerna? Själv kör jag 4.01.

Medlem sedan sep. 2000206 inlägg
#13

Faktiskt så var det så jäkla enkelt... På den andra sidan jag hade så hade jag inget mellanslag och reagerade inte över det heller. Jag har tagit bort mellanslag mellan allting bara för att testa utom just där... Vad säger man? *sucka*

Tack!!

Medlem sedan mars 20032 667 inlägg
#14

Zerephina skrev:

Faktiskt så var det så jäkla enkelt... På den andra sidan jag hade så hade jag inget mellanslag och reagerade inte över det heller. Jag har tagit bort mellanslag mellan allting bara för att testa utom just där... Vad säger man? *sucka*

Tack!!

Får man fråga vilken mysql-version du använder?

Medlem sedan feb. 20034 441 inlägg
#15

Nu har jag problem med samma sak. DBMS är Mysql 4.1.
Får felmeddelandet:

Inkompatibla typer

Koden ser ut såhär:

<%
If isNumeric(Session("usrPerm")) AND Session("usrPerm") > 1 Then
	Dim oConn
	Set oConn = Server.CreateObject("ADODB.Connection")
	oConn.Open dbConn
	sSql = "SELECT COUNT(menuID) FROM tbl_admMenu WHERE usrPerm < " & Session("usrPerm") & " OR usrPerm = " & Session("usrPerm")
'	Response.Write(sSql) : Response.End

	Set rs = oConn.Execute(sSql)
	If Not rs.EOF Then menuBlocks = rs(0) Else Response.reDirect("logout.asp") End If
	If Session("usrId") = superUsr Then addBlock = 2 Else addBlock = 1 End If
%>
<script type="text/javascript">
<%
	[b]Response.Write("var FoldNumber = " & menuBlocks + addBlock & ";" & VbCrLf)[/b]
	Set rs = Nothing
Else
	Response.reDirect("logout.asp")
End If
%>

Den fetstilta raden ovan är raden felet uppstår på.
Frågan skrivs ut helt rätt, nämligen såhär:

SELECT COUNT(menuID) FROM tbl_admMenu WHERE usrPerm < 3 OR usrPerm = 3

Några förslag?

Tack!

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)