mysql like 匹配问题

2017-11-08 14:53:37 +08:00
 caoyufei

现在有个需求是 从已有的 5 个标签 aa, bb,cc,dd,ee 去查询相识的标签 比如 aab bba 这样的要匹配出来

1:循环 5 次

for(;;)
select * from tabel where field like '%tag%'

2:like 多次

select * from tabel where field like '%tag1%' or like '%tag2%' ...

3 有没有其他实现?

标签都是中文的

1300 次点击
所在节点    问与答
2 条回复
msg7086
2017-11-08 15:06:42 +08:00
如果是比较固定的数据和比较固定的标签的话,用 1 就行了。让 MySQL 做查询缓存来提速。

其他实现的话,就是把表结构规范化,提升范式水平。
kanshan
2017-11-08 17:07:53 +08:00
如果你的 5 个标签存在某个表中的话
```sql
SELECT * FROM tabel a INNER JOIN tag b WHERE LOCATE(b.tag,a.field) > 0
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/404618

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX