webForumDet fria alternativet

SQL LIKE "problem"

Databaser & SQL

4 svar · 541 visningar · startad av phred

Medlem sedan nov. 2005314 inlägg
Frågan#1

Jag håller på med en sida där man ska gissa på filmtitlar, när det är gjort så sköter "systemet" allt själv det fungerar mycket bra i dagsläget förutom en sak som jag skulle vilja lösa.

Om Filmtiteln i datbasen är "Dumb And Dumber" och sedan gissar någon på Dumb & Dumber och jag skulle vilja ge denna person rätt för det, hur skulle då SQL-strängen se ut ?

Använder denna nu:

SQL="select COUNT(*) as antalratt from tblgissa where filmtitel LIKE'%" & filmtitel & "%'"

Denna fungerar alltså som jag vill nu, men problemet ligger alltså som jag tidigare skrev i att om någon gissar på Dumb & Dumber istället för Dumb And Dumber som det står i databasen så tar den inte med det.

Tacksam för bra tips och idéer.

MVH
PHRED

Medlem sedan dec. 200012 464 inlägg
#2

Byt ut & mot and i filmtitel innan du skickar frågan.

Medlem sedan okt. 200179 inlägg
#3

Du kanske kan dela upp "gissningen" per ord?

Ex:
ord1 = "Dumb"
ord2 = "&"
ord3 = "Dumber"
SQL="select COUNT(*) as antalratt from tblgissa where filmtitel LIKE'%" & ord1 & "%' OR filmtitel LIKE'%" & ord2 & "%' OR "... osv...

Ingen snygg lösning och du kommer dessutom få träff på filmtitlar med "&" i. Du kan kanske filtrera bort andra tecken än alfabetet och siffror. Eller ord kortare än 2 tecken.

Ingen bra lösning som sagt men någon kanske kan "rätta" den här så du får svar på frågan! :r :e

Medlem sedan juli 2003465 inlägg
#4

Kanske byta udda tecken ex. & mot %
Blir inte 100%igt men det kanske duger för ditt system...

Medlem sedan nov. 2005314 inlägg
#5

Tack för svaren, dock så är det inget alternativ, jag är antagligen alldeles för naiv och gradden på moset är väl att jag inte tänker klart innan jag postar.

Löser tråden.
Tack.

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