gpt4 book ai didi

mysql - 比较数据库或本地两个表之间的文本字符串

转载 作者:行者123 更新时间:2023-11-29 18:45:31 26 4
gpt4 key购买 nike

编辑:SQL 对此不起作用。我刚刚发现 Solr/Sphinx,它似乎是解决这个问题的正确工具,所以如果您了解 Solr 或 Sphinx,我很想收到您的来信。

基本上,我有一个包含专利信息的 .tsv 和一个包含产品名称的 .csv。我需要将专利列的每一行与产品名称进行匹配,并在新的 .csv 列中提取出现的次数。

您可以向下滚动并查看最后的示例。

原始问题:

这里是 SQL 新手,请耐心等待:)。我不知道该怎么做:

我的数据库:

mysql> SHOW TABLES;
+-----------------------+
| Tables_in_prodpatdb |
+-----------------------+
| assignee |
| patents |
| patent_info |
| products |
+-----------------------+
mysql> DESCRIBE patents;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| ... | | | | | |
| patent_id | varchar(20) | YES | | NULL | |
| text | text | YES | | NULL | |
| ... | | | | | |
+-------------+-------------+------+-----+---------+-------+
mysql> DESCRIBE products;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| name | text | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+

我必须使用nametext列,它们看起来像这样:

name
product1
product2
product3
...
~10M rows
<小时/>
text
long text description 1
long text description 2
long text description 3
...
~88M rows

我需要检查 patents.text 第 1 行并将其与 products.name 列进行匹配,以查找该行中的每个产品名称,然后将这些产品名称存储在新表。然后检查第 2 行并重复。

如果 patents.text 行多次出现产品名称,只需将其复制到新表一次。如果某行没有产品名称,则跳过它。输出应该是这样的:

Operation  Product
1 prod5, prod6
2 prod7
...

一个例子:

name
valve
a/c fan
farmed salmon
...
<小时/>
  text
This patent deals with a new approach to air-conditioned fan. With some new valve the a/c fan is
so much better. The new valve is great.
This patent has no product names in it.
This patent talks about farmed salmon.
...
<小时/>

期望的输出:

Operation   Product
1 valve, a/c fan
2 farmed salmon
...

最佳答案

您可以将 GROUP_CONCAT 与内部 SELECT 查询结合使用,例如:

SELECT p.text, 
(SELECT GROUP_CONCAT(name) FROM products WHERE LOCATE(LOWER(name), LOWER(p.text)) > 0) AS 'products'
FROM patent p;

关于mysql - 比较数据库或本地两个表之间的文本字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44681622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com