Im Moment habe ich ein Problem mit der Suche Produkten mit Tags haben:Komplexe Suche nach Tags
Products
id name
1 lightbulb
Tags
id name
1 energy
2 light
3 lights
Tagships
id taggable_id tag_id
1 1 1
1 1 2
1 1 3
Ich brauche eine Abfrage zu erstellen, die Produkte zu erhalten, die als (Energie) markiert ist und (Licht oder Beleuchtung)
Bisher funktioniert das nicht:
SELECT ..<snipped>..
FROM `products`
LEFT OUTER JOIN `tagships`
ON (`products`.`id` = `tagships`.`taggable_id`)
LEFT OUTER JOIN `tags`
ON (`tags`.`id` = `tagships`.`tag_id`)
WHERE ((tags.name = 'energy' OR tags.name = 'energies')
AND (tags.name = 'light' OR tags.name = 'lights'))
GROUP BY products.id
HAVING COUNT(tagships.tag_id) <= 2
ORDER BY products.updated_at DESC
die Abfrage aktualisiert. Hinweis: Ich brauche die Abfrage, um nach Singular- und Pluralform des Tags zu suchen, wie in der obigen Abfrage zu sehen ist.
ich meine Antwort aktualisiert haben, um Platz für Plurale Ihrer Suchbegriffe zu finden. Leider hat Englisch zu viele Pluralformen, um es algorithmisch zu tun; Sie müssen nur alle Begriffe auflisten, die Sie finden möchten. Vielleicht möchten Sie eine Liste möglicher Suchbegriffe mit dem entsprechenden Plural haben, wenn Sie Ihren Suchanfragen einen Mehrwert hinzufügen möchten? –