我有这张桌子
文本
| txt_id | txt_content |
|--------+----------------------------------------------|
| 1 | A ton of text and <<this>> |
| 2 | More text <<and>> that |
| 3 | <<Very>> much <<text>> enough for<everyone>> |
这个表
标记的
| tag_id | tag_name |
|--------+----------|
| 1 | THIS |
| 2 | AND |
| 3 | VERY |
| 4 | TEXT |
| 5 | EVERYONE |
我需要一个查询才能生成此表。
| txt_id | tag_id |
|--------+--------|
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 3 | 4 |
| 3 | 5 |
通过单独获取每段文本但使用 text 表有很多行(> 30M)来处理python代码会很愚蠢,我认为它会花费很多时间在数据库上 - 后端沟通。有没有办法用MySQL做这种事情?
我甚至满意| txt_id | tag_id |
|--------+----------|
| 1 | this |
| 2 | and |
| 3 | Very |
| 3 | text |
| 3 | everyone |
但我希望最后一部分在MySQL中很容易做到。
答案 0 :(得分:2)
这不是必须特别快,但它会做你想要的:
select t.txt_id, ta.tag_id
from text t join
tags ta
on t.txt_content like concat('%<', ta.tag_name, '>%');