gpt4 book ai didi

mysql - 如何在 MySQL 中表示交叉应用和拆分字符串

转载 作者:行者123 更新时间:2023-11-29 01:30:34 24 4
gpt4 key购买 nike

对于某些背景,我正在尝试创建一个包含多个食谱的数据库。但是,有必要将各个成分与其最初来源的配方相关联。

例如,我有一个包含所有单独成分的表格。

enter image description here

还有一个存储食谱的表格,减去了配料。

enter image description here

现在,我找到了 this介绍如何使用 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

我正在寻找的结果与此非常相似: enter image description here

但是,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)

发现这篇文章很有帮助:MySQL query finding values in a comma separated string

如果您需要进一步解释其工作原理,请发表评论。

关于mysql - 如何在 MySQL 中表示交叉应用和拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591779/

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