但是我的keyword_ids是存在空格或者为空的情况的 请帮我过滤
时间: 2024-04-12 07:27:49 浏览: 103
如果您的 `keyword_ids` 字段可能包含空格或为空值,可以使用 `REGEXP_REPLACE` 函数来过滤这些情况。以下是一个更新后的示例查询:
```sql
INSERT INTO sa_ccms_tags_mapping (tag_id, a_id)
SELECT DISTINCT keyword_id, id
FROM sa_cms_article
CROSS JOIN JSON_TABLE(CONCAT('[', REGEXP_REPLACE(keyword_ids, '[ ,]+', ','), ']'), '$[*]' COLUMNS (keyword_id INT PATH '$')) AS jt;
```
在这个查询中,使用 `REGEXP_REPLACE` 函数将空格或连续的逗号替换为单个逗号。这样可以确保生成的数组中不会包含空元素。
请注意,这里假设您的MySQL版本支持 JSON 函数和 JSON_TABLE 函数。如果不支持,请告诉我您的MySQL版本,我可以提供适用于该版本的替代方案。
相关问题
我的mysql版本为5.7 并且keyword_ids 字段可能包含空格或为空值
非常抱歉,MySQL 5.7 不支持 JSON 函数和 JSON_TABLE 函数。在这种情况下,您可以使用字符串函数和子查询来实现目标,并处理 `keyword_ids` 字段可能包含空格或为空值的情况。以下是一个适用于MySQL 5.7的示例查询:
```sql
INSERT INTO sa_ccms_tags_mapping (tag_id, a_id)
SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(t.keyword_ids, ' ', ''), ',', numbers.n), ',', -1) AS keyword_id, t.id
FROM sa_cms_article AS t
CROSS JOIN
(
SELECT 1 + units.i + tens.i * 10 AS n
FROM
(
SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION
SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) AS units
CROSS JOIN
(
SELECT 0 AS i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION
SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
) AS tens
) AS numbers
WHERE numbers.n <= LENGTH(REPLACE(t.keyword_ids, ' ', '')) - LENGTH(REPLACE(REPLACE(t.keyword_ids, ' ', ''), ',', '')) + 1
AND t.keyword_ids IS NOT NULL
AND t.keyword_ids != '';
```
在这个查询中,我们使用了字符串函数 `REPLACE` 和 `SUBSTRING_INDEX` 来处理 `keyword_ids` 字段中的空格和逗号,并将其拆分为单独的标签ID。同时,我们添加了条件来过滤空值或包含空格的 `keyword_ids` 字段。
请尝试运行这个查询,并确保在运行之前备份您的数据以防万一。如果您遇到任何问题,请随时向我提问。
forward() got an unexpected keyword argument 'input_ids'
这个错误通常是因为你在调用 `forward()` 方法时使用了错误的参数名称。`input_ids` 是 Transformers 库中用于表示输入文本的参数,因此它应该被传递给模型的构造函数而不是 `forward()` 方法。
以下是一个示例代码,展示了如何正确地使用 `input_ids` 参数:
```
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
model = AutoModel.from_pretrained('bert-base-uncased')
inputs = tokenizer("Hello, world!", return_tensors="pt")
outputs = model(inputs['input_ids'])
```
在这个示例中,我们首先使用 `AutoTokenizer` 类加载一个 BERT tokenizer,然后使用它来将输入文本编码为 `input_ids` 张量。最后,我们将 `input_ids` 传递给 BERT 模型的 `forward()` 方法以获得输出。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)