gpt4 book ai didi

mysql - mysql根据另外两个表中的值将数据插入表中

转载 作者:行者123 更新时间:2023-11-30 01:09:38 26 4
gpt4 key购买 nike

我正在使用 MySQL 并有一个表(documentShips),我想存储文档和用户之间的连接/链接。

  • users 表包含 id、first_name 和 last_name 等列...
  • 文档表包含 id 和 users 列,其中 users 列包含逗号分隔值
    • 例如“乔·布洛格斯、弗雷德·纳克、西蒙·麦库尔”等等......

我想使用类似的语句来匹配表(文档和用户)之间的用户,例如:

where documents.authors like '% users.last_name %'

并将它们插入到 documentShips 表中,例如:

insert into documentShips (user_id, document_id) ... values () ... where ...

我正在努力创建一个有效的(mysql)插入语句来执行此操作。

任何帮助将不胜感激!!!

谢谢,乔恩。

最佳答案

如果我理解正确,你可以像这样使用FIND_IN_SET()

INSERT INTO documentShips (user_id, document_id)
SELECT u.id, d.id
FROM documents d JOIN users u
ON FIND_IN_SET(CONCAT(u.first_name, ' ', u.last_name), d.authors) > 0
ORDER BY d.id, u.id

这里是SQLFiddle 演示

为了使其正常工作,您必须确保 document.authors 中的逗号分隔值在逗号之前或之后没有空格。如果实际上您有空格,那么首先使用这样的查询消除它们

UPDATE documents
SET authors = REPLACE(REPLACE(authors, ' ,', ','), ', ', ',');

这里是SQLFiddle 演示

现在考虑规范化您的文档表。

关于mysql - mysql根据另外两个表中的值将数据插入表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19545229/

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