我正在使用MySQL并且有一个表(documentShips),我想存储文档和用户之间的连接/链接。
我想使用like语句匹配表(文档和用户)之间的用户,例如:
where documents.authors like '% users.last_name %'
并将它们插入documentShips表,例如:
insert into documentShips (user_id, document_id) ... values () ... where ...
我正在努力创建一个有效的(mysql)插入语句来执行此操作。
任何帮助都将非常感谢!!!
谢谢, 乔恩。
答案 0 :(得分:0)
使用MySQL文档中显示的INSERT...SELECT语法。文档也有一些例子。
答案 1 :(得分:0)
如果我理解正确,您可以像这样使用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 演示
现在考虑规范化您的documents
表。