首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用like或regexp标记的sql select

使用like或regexp标记的sql select
EN

Stack Overflow用户
提问于 2014-01-21 20:24:22
回答 1查看 75关注 0票数 0

我有个问题,我真的不知道怎么解决它。因此,我有很多到很多关系模型,有以下表格:‘post’、‘tag’、‘post_ to _tag’。假设我想让所有的帖子都有标签,从's‘和't’开始。我使用以下查询:

代码语言:javascript
复制
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,starting,lala,即使没有以t开头的标记(从‘s’开始有2个标记),查询也会成功。在这里,帖子也应该有一个标签,以“t”开头。有人知道怎么解决这个问题吗?我希望我把问题弄清楚了。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-21 20:42:07

你希望所有的帖子都有一个以's‘开头的标签,另一个以't’开头的帖子。您需要更改having子句:

代码语言:javascript
复制
SELECT 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(distinct left(t.name, 1)) = 2;

而且,在使用select distinct时不需要group by

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21268359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档