我有一個問題,我真的不知道如何解決它。所以我有以下表格的多對多關係模型:'posts','tags','posts_to_tags'。 假設我想獲取所有標籤以's'和't'開頭的帖子。我使用以下查詢:sql select with tags like or regexp
SELECT DISTINCT o.id
FROM posts o
JOIN posts_to_tags ot ON o.id = ot.post_id
JOIN tags t ON ot.tag_id = t.id
WHERE t.name REGEXP '^s|^t'
GROUP BY o.id
HAVING COUNT(o.id) = 2
這在大多數情況下可以正常工作,但並非總是如此。例如,如果有一個帖子具有以下標籤:smee,smooth,lala 即使沒有以't'開始的標籤(有2個標籤以's'開頭),查詢也會成功。這裏帖子也應該有一個以't'開始的標籤。 有沒有人有任何提示如何解決這個問題? 我希望我能明確地理解問題。
預先感謝您。
您的意思是標籤應該包含*至少一個*匹配以*每個*字符開頭,對吧?所以'smee,tooth,lala'可以適合你的例子。 – tenub
是的,就是這樣!當然,'s'和't'是可以測試的東西。 –