gpt4 book ai didi

mysql - 如何将向量插入到 mysql 表的列中?

转载 作者:可可西里 更新时间:2023-11-01 07:06:50 25 4
gpt4 key购买 nike

在 R 中,我有一个字符串向量“myVector”,我想将其插入到 mysql 表“myTable”的列“myColumn”中。我知道我可以编写 sql 查询并使用 dbSendQuery 在 R 中运行它。所以我们先搞清楚sql查询。这是一个例子:

myVector = c("hi","I", "am")

让我们在 myTable 的列 myColumn 中插入 myVector,行号 3 到 5,这是有效的 sql 查询,除了最后一行我不知道:

UPDATE myTable t JOIN
(SELECT id
FROM myTable tt
LIMIT 3, 3
) tt
ON tt.id = t.id
SET myColumn = myVector;

谢谢

最佳答案

假设我正确理解你的问题,我有两种可能的解决方案:

<强>1。每个元素一列:如果您的向量都具有相同数量的元素,则可以将它们中的每一个存储在单独的列中。从上面的示例开始,该表可能如下所示。 (列的大小和是否允许空值取决于你的数据)

CREATE TABLE `myTable` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`element1` varchar(255) DEFAULT NULL,
`element2` varchar(255) DEFAULT NULL,
`element3` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

从上面插入向量的语句是:

INSERT INTO `myTable` (`id`, `element1`, `element2`, `element3`)
VALUES (1, 'hi', 'I', 'am');

根据您的向量具有多少元素,此方法可能或多或少适用。

<强>2。将向量存储为 blob:另一种方法是将向量存储为 blob。 Blob(二进制大对象)是一种存储可变数量(二进制)数据的数据类型(参见:https://dev.mysql.com/doc/refman/5.7/en/blob.html)。这个想法来自这篇文章:http://jfaganuk.github.io/2015/01/12/storing-r-objects-in-sqlite-tables/

可以使用以下语句创建该表:

CREATE TABLE `myTable` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`myVector` blob,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

插入向量时,您将变量绑定(bind)到查询。由于我不是 R 专家,因此我会引用这篇文章了解实现细节。

关于mysql - 如何将向量插入到 mysql 表的列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48329513/

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