webForumDet fria alternativet

leta i flera databaskolumner..?

ASP

15 svar · 340 visningar · startad av JAreMANNEN

Medlem sedan aug. 20002 272 inlägg
Frågan#1

så här ser min SQL-sats ut nu..

strSQL = "SELECT * FROM " & veckodag & " WHERE food_1 LIKE '%" & sok & "%' "

Som det är nu så söker jag bara i kolumnen food_1, och det fungerar kalasbra! MEN jag vill juh givetvis söka i food_1, food_2, food_3 och food_4..

Hur gör jag det..?

Provade WHERE food_1, fodd_1 osv men det fungerade såklart inte..

tar för givet att någon vet hur man gör detta på bästa sätt.. :e

------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post

Medlem sedan jan. 2000144 inlägg
#2

Or'a ihop dina uttryck.

WHERE food_1 like 'bla%' or fodd_2 like 'bla%'
Medlem sedan juli 20003 825 inlägg
#3

Se över din databs...

[menu]
x_ID - räknare
x_day - int, veckodag
x_food - 50 tecken, text, typ av mat

SQL = "SELECT * FROM [menu] WHERE [x_food] = '" & request("sok") & "';"

...eller nå't...

---

Jag vet inte vad du vill göra men ibland kan lösningen på ett problem vara att helt enkelt göra en ny lösning och på det sättet komma förbi problemet...

Medlem sedan aug. 20002 272 inlägg
#4

Löste det på detta vis..

strSQL = "SELECT * FROM " & veckodag & " WHERE food_1 AND food_2 AND food_3 AND food_4 LIKE '%" & sok & "%' "

funkade perfa.. :)

------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post

Medlem sedan jan. 2000144 inlägg
#5

Hmmm
Ser konstigt ut tycker jag.

Du söker ut poster där kolumnerna food_1..4 innehåller samma värden vilket matchar på %<sök>%.

Det är inte samma sak som du undrade över i början.
Då ville du söka ut poster där någon av kolumnerna food_1..4 matchar på %<sök>%.

Eller har jag fel??

Medlem sedan dec. 19998 577 inlägg
#6

SQLen ovan kommer att fråga efter poster där:

food_1 = true
food_2 = true
food_3 = true
food_4 = '%sok%'

------------------
Function onLick(name)
Punch.name(in_the_ear)
End Function

Jourhavande Vide

Medlem sedan aug. 20002 272 inlägg
#7

Hrm..konstigt...

Jag vill/ville hämta ut posterna där food_1-4 matchar '%" & sok & "%'..

Men det tyckte jag att de gjorde..*väldigt fundersam* :o

Mkt konstigt...då SKA maninte kunna göra så som jag gjorde då altså..??!!

------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post

Medlem sedan dec. 19996 721 inlägg
#8

Nope.

strSQL = "SELECT * FROM " & veckodag & " WHERE food_1 LIKE '%" & sok & "%' AND food_2 LIKE '%" & sok & "%' AND food_3 LIKE '%" & sok & "%' AND food_4 LIKE '%" & sok & "%'"

om du vill att den ska matcha på alla, annars är det OR som gäller.

Medlem sedan juni 200032 967 inlägg
#9

då SKA maninte kunna göra så som jag gjorde då altså..??!!

nopp...

korrekt syntax är så här:

strSQL = "SELECT * FROM " & veckodag & " WHERE food_1 LIKE '%" & sok & "%' AND food_2 LIKE '%" & sok & "%' AND food_3 LIKE '%" & sok & "%' AND food_4 LIKE '%" & sok & "%' "

fast or kanske?

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan juni 200032 967 inlägg
#10

jäbla emission... ;)

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19996 721 inlägg
#11

Muahaha!! :e ;)

Medlem sedan aug. 20002 272 inlägg
#12

TACKAR ALLA... :e :e :e :e

------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post

Medlem sedan mars 20015 287 inlägg
#13

Nu väcker vi denna tråd.
Jag har ett liknande script fasr med OR samt att jag även söker efter "delar" av en post i databasen. (Som här.)

Men hur gör jag för att lista precis vad jag egentligen har hittat?

(När jag söker i flera kolumner)

Fråga gärna om ni inte förstår vad jag menar.

------------------
/solbulle
Hemmabio | Spelautomater | The Who

Medlem sedan feb. 20012 412 inlägg
#14

Hej, hoppas jag förstod dig rätt nu ;)

vill du ha exakt träff på sökordet får du skriva:

WHERE tabellen = '" & sok & "'

istället för

WHERE tabellen LIKE '%" & sok & "%'

och om vi tar sql-frågan ovan som exempel när du använder OR, bör det vara:

strSQL = "SELECT * FROM " & veckodag & " WHERE (food_1 LIKE '%" & sok & "%' OR food_2 LIKE '%" & sok & "%' OR food_3 LIKE '%" & sok & "%' OR food_4 LIKE '%" & sok & "%') "

alltså paranterser, annars slutar den att jämföra efter första som blir sant.

mvh Jörgen

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

Medlem sedan mars 20015 287 inlägg
#15

Hm, nja inte riktigt vad jag menade. Men jag kanske krånglar till det i onödan el så går det inte pga min databasstruktur.

Först sökte jag som du skriver i ditt första ex. Sen la jag in så det inte behövde matcha exakt. (Ditt ex nr2)
Till detta har jag en selectbox där man väljer vilken kolumn man vill söka i.

Men... sen fick jag iden att det kunde vara kul att söka i alltihop, ditt ex nr3.

Om jag då söker på t.ex: "tom" får jag träffar på:
(Jag har kolumner typ med titel, namn, producent osv)

tomten, tom, tommy,

Alla dessa kommer från olika kolumner - finns det något sätt att se, visa vilket egentligt ord i vilken kolumn jag hittade?
(Nu kanske jag snurrar till det onödigt mycket...)

Alltså "tom" som i "tomten" =titel
"tom" som i "tom" =namn
"tom" som i "tommy" =producent

------------------
/solbulle
Hemmabio | Spelautomater | The Who

Medlem sedan dec. 200012 464 inlägg
#16

Då skulle jag vilja rekommendera en union

  select titel,'Titel' as typ from tabellen where titel like '%tom%'
union all
  select namn,'namn' from tabellen where namn like '%tom%'
union all
  select producent,'producent' from tabellen where producent like '%tom%'

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

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)