Ber*_*rch 2 mysql t-sql string split
对于某些背景,我正在尝试创建一个包含多个食谱的数据库.但是,必须将各种成分与它们最初来自的配方联系起来.
例如,我有包含所有单独成分的表.

并且存储食谱的表格减去成分.

现在,我发现这篇文章介绍了如何使用T-SQL XML命令拆分字符串,以及用于执行此操作的代码是:
SELECT
Books.BookId,
Books.Book,
BookAuthors.AuthorId,
BookAuthors.Author
FROM Books
CROSS APPLY dbo.split(Books.Authors,',') split
INNER JOIN BookAuthors ON BookAuthors.AuthorId = split.val
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果与此非常相似:

但是,CROSS APPLY等仅适用于MS SQL Server,我的问题是:
是否有可能使用MySQL实现相同或非常相似的效果?
谢谢你的帮助.
这应该与您想要得到的完全匹配:
SELECT
Books.BookId,
Books.Book,
BookAuthors.AuthorId,
BookAuthors.Author
FROM Books
LEFT JOIN BookAuthors ON (find_in_set(BookAuthors.AuthorId, Books.Authors) <> 0)
Run Code Online (Sandbox Code Playgroud)
发现这篇文章非常有用:MySQL查询以逗号分隔的字符串查找值
如果您需要进一步说明它是如何工作的,请发表评论.