Just nu i M3-nätverket
Gå till innehåll

Avancerad sökfunktion


Miky

Rekommendera Poster

Jag arbetar på en avancerad sökfunktion för en drinksida där jag vill kunna söka typ '+vodka +gin' och få alla drinkar som innehåller både vodka och gin. Som ni ser i databasen nedan så finns det 2 st drinkar (forsta_namnet och andra_namnet). Den första drinken har både vodka och gin medans den andra endast har vodka. Jag knyter samman dessa båda tabeller med 'tabell_1.ID' och 'tabell_2.tab1ID'.

Nu är kruxet det att jag inte riktigt kan lista ut hur jag ska formulera min SQL-sträng. Med den SQL-strängen nedan listas de drinkar som innehåller antingen vodka eller gin (eller båda).

Jag arbetar med MySQL och ASP.

 

select X.ID as ID, X.namn as namn, I.sprit from drink_index X, drink_ingr I
where X.ID = I.tab1ID AND X.namn LIKE '%%' AND (I.ingr LIKE '%vodka%' OR I.ingr LIKE '%cur%') 
ORDER BY X.namn

 

Databasen:

Tabell_1:

ID|namn

1|forsta_namnet

2|andra_namnet

 

Tabell_2:

ID|tab1ID|ingr

1|1|Vodka

2|1|Gin

3|2|Vodka

 

/MVH Muad’dib

”Picking a lock is kind of like picking your nose,

if your successful you are going to end up with some kind of reward”

 

 

Länk till kommentar
Dela på andra webbplatser

Ingen som har en ide om hur detta skulle kunna lösas?

 

/MVH Muad’dib

”Picking a lock is kind of like picking your nose,

if your successful you are going to end up with some kind of reward”

http://www.festaloss.com

 

 

Länk till kommentar
Dela på andra webbplatser

select X.ID as ID, X.namn as namn

from drink_index X, drink_ingr I

where X.ID = I.tab1ID AND X.namn LIKE '%%' AND (I.ingr LIKE '%vodka%' OR I.ingr LIKE '%gin%')

group by x.id,x.namn

having count(*) = 2

ORDER BY X.namn

 

Länk till kommentar
Dela på andra webbplatser

Tack Lars,

Jag testade ditt förslag och den funkar mycket bra... fram till en punkt:

 

En del drinkar kan ha 'Gin' och 'Ginger Ale' i sina drinkar men ingen vodka. Dock så listar ditt förslag dessa drinkar också...vilket det inte ska göra...

 

Visserligen kan jag ju få den att söka efter 'gin' istället för '%gin%' och få det att fungera men då förlorar man en stor del i sökfunktionen...

 

/MVH Muad’dib

”Picking a lock is kind of like picking your nose,

if your successful you are going to end up with some kind of reward”

http://www.festaloss.com

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...