在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;
谢谢
3条答案
按热度按时间bvn4nwqk1#
你应该做的是导出你的
R
矢量组件JSON
使用toJSON()
函数,例如:也可以创建或更改
myTable
以便myColumn
有适当的JSON Data Type
如果值是有效的json值,则尝试将值插入json列会成功,如果不是,则会失败:例子
此外,你还可以
R
矢量自JSON
使用函数fromJSON()
.dw1jzc5e2#
我不知道,如果mysql支持
Vector
数据类型,但您可以将表设计为解决方法Vector
可以存储在不同的表中并与myTable
作为1-M
.这有助于您轻松管理和检索详细信息。所以,假设
myTable
是您的table,它的现有设计是:所以,你的主桌可以
以及存储向量的表。
jm81lzqq3#
假设我正确理解你的问题,我有两个可能的解决方案:
1每个元素一列:如果你的向量都有相同数量的元素,你可以把它们存储在一个单独的列中。从上面的示例开始,表可以如下所示(列的大小以及是否允许空值取决于您的数据)
从上面插入向量的语句是:
根据向量中有多少元素,这种方法可能或多或少适用。
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/
可以使用以下语句创建表:
插入向量时,将变量绑定到查询。由于我不是一个rMaven,我将参考本文了解实现细节。