Visa ett inlägg
Oläst 2010-01-17, 22:39 #3
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
grinditwp grinditwp är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2008
Inlägg: 320
förstår inte riktigt...

låt oss säga att jag vill hitta alla bookmarks med taggarna BOLL och SPORT.

Då fungerar;

PHP-kod:
SELECT b.*
FROM tagmap btbookmark btag t
WHERE bt
.tag_id t.tag_id
AND (t.name IN ('boll''sport'))
AND 
b.id bt.bookmark_id
GROUP BY b
.id
HAVING COUNT
b.id )=
och jag hittar 1 bookmark, för det finns bara 1 bookmark med dessa två taggarna. Det finns flera bookmarks med taggen SPORT. So far so good!

Men låt oss testa systemet, söker jag på BOLL och KJHAJSGHAGS, vart på KJHAJSGHAGS är en tagg jag vet INTE existerar.

PHP-kod:
SELECT b.*
FROM tagmap btbookmark btag t
WHERE bt
.tag_id t.tag_id
AND (t.name IN ('boll''KJHAJSGHAGS'))
AND 
b.id bt.bookmark_id
GROUP BY b
.id
HAVING COUNT
b.id )=
..så hittar jag fortfarande en bookmark. Samma som vid första sökningen.... varför?

För att göra det ännu snurrigare och testar att lägga till en tagg till vi vet inte existerar.

PHP-kod:
SELECT b.*
FROM tagmap btbookmark btag t
WHERE bt
.tag_id t.tag_id
AND (t.name IN ('boll''KJHAJSGHAGS''AAAKJSL'))
AND 
b.id bt.bookmark_id
GROUP BY b
.id
HAVING COUNT
b.id )=
..så hittar vi inget. Som vi förväntat oss redan i exempel 2.

Senast redigerad av grinditwp den 2010-01-17 klockan 22:43
grinditwp är inte uppkopplad   Svara med citatSvara med citat