webForumDet fria alternativet

SQL fråga ?

4 svar · 169 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hejsan! :)

Har denna, jag önskar att det skulle fungera även om det inte finns något värde på subcatid och/eller inte heller på name.

På catid och city finns det alltid ett värde.

SQL = "SELECT * FROM Brunswick " _ 
     & " WHERE catid = " & catid _ 
     & " AND subcatid = " & subcatid _ 
     & " AND city = '" & city & "' " _ 
     & " AND name LIKE '%" & name & "%' "
LarsGMedlem sedan dec. 200012 464 inlägg
#2
SQL = "SELECT * FROM Brunswick " _ 
     & " WHERE catid = " & catid _ 
     & " AND (subcatid is null or subcatid = " & subcatid _ 
     & " ) AND city = '" & city & "' " _ 
     & " AND ( name LIKE '%" & name & "%'  or name is null)"
PellefantMedlem sedan maj 20023 372 inlägg
#3

Hej hopp!

Testar med ditt förslag nu, men den fallerar ibland.

Om bara catid och city finns:

SELECT * FROM Brunswick WHERE catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Brunswick' AND ( name LIKE '%%' or name is null)

Microsoft JET Database Engine error '80040e14'

Extra ) in query expression 'catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Brunswick' AND ( name LIKE '%%' or name is null)'.

Annat exempel:

SELECT * FROM Brunswick WHERE catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Sea Island' AND ( name LIKE '%%' or name is null)

Microsoft JET Database Engine error '80040e14'

Extra ) in query expression 'catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Sea Island' AND ( name LIKE '%%' or name is null)'.

Här saknades bara name, och det gick bra:

SELECT * FROM Brunswick WHERE catid = 13 AND (subcatid is null or subcatid = 12 ) AND city = 'Brun' AND ( name LIKE '%%' or name is null)

Provade att vända på en av parenteserna, som kommit på fel håll(?), men det hjälpte inte.

Funkar bra även när alla fyra är valda.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Jaså, jag trodde att du menade att det inte fanns några värden i databasen... Då är det mer fråga om ASP.

SQL = "SELECT * FROM Brunswick " _ 
     & " WHERE catid = " & catid _ 
     & " AND city = '" & city & "'"
if subcatid <> "" then
   SQL = SQL & " AND subcatid = " & subcatid 
end if
if name <> "" then
   SQL = SQL & " AND name like '%" & name & "%'"
end if
PellefantMedlem sedan maj 20023 372 inlägg
#5

Jaså, hur kunde du få för dig något sådant? :) (skojar)

Nu fungerar det toppen, tack så mycket för hjälpen.

*Tack*

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