如何从matlab变量(数组/单元格)中选择mysql表

如何从matlab变量(数组/单元格)中选择mysql表,mysql,matlab,Mysql,Matlab,我有一张这样的桌子 select * from tablename where key1 = x 我在matlab中有一个变量x x=[1 5 6 8 10 21 99]; 现在我想这样选择 select * from tablename where key1 = x 我知道mysql查询必须是字符串,我在matlab中的变量x可能太长了。 那么如何在matlab中实现这一点呢?我找不到。谢谢 conn = database('instancename',

我有一张这样的桌子

    select * from tablename where key1 = x

我在matlab中有一个变量x

    x=[1 5 6 8 10 21 99];
现在我想这样选择

    select * from tablename where key1 = x
我知道mysql查询必须是字符串,我在matlab中的变量x可能太长了。 那么如何在matlab中实现这一点呢?我找不到。谢谢

    conn = database('instancename','username','password');
我知道我可以这样做

    sql = 'select * from tablename where key in (1,5,6,8,10,21,99)'

问题是我的x不是常数,有时可能是1*N单元格(其元素为char),我想将其放入脚本中。

在SQL Server中,您可以这样编写查询:

select * from tablename where key1 in {1, 5, 6, 8, 10, 21, 99}
x_str = strjoin(cellstr(num2str(x'))',',')
我不知道我的SQL,但我认为它非常相似。这意味着您只需将
x
转换为字符串
'1,5,6,8,10,21,99'
,您可以这样做:

select * from tablename where key1 in {1, 5, 6, 8, 10, 21, 99}
x_str = strjoin(cellstr(num2str(x'))',',')
现在整个查询变成了

query = sprintf('SELECT * FROM tablename WHERE key1 IN {%s}', x_str);
另外,创建
x_str
的另一种方法可以是:

x_str = sprinft('%d, ', x);
x_str(end) = [];

在SQL Server中,您可以这样编写查询:

select * from tablename where key1 in {1, 5, 6, 8, 10, 21, 99}
x_str = strjoin(cellstr(num2str(x'))',',')
我不知道我的SQL,但我认为它非常相似。这意味着您只需将
x
转换为字符串
'1,5,6,8,10,21,99'
,您可以这样做:

select * from tablename where key1 in {1, 5, 6, 8, 10, 21, 99}
x_str = strjoin(cellstr(num2str(x'))',',')
现在整个查询变成了

query = sprintf('SELECT * FROM tablename WHERE key1 IN {%s}', x_str);
另外,创建
x_str
的另一种方法可以是:

x_str = sprinft('%d, ', x);
x_str(end) = [];

您是否能够通过MATLAB连接到SQL数据库,而您只是询问如何构造查询字符串?还是你在问如何从MATLAB连接?是的,我可以连接到数据库。我在问如何在matlab脚本@DanPlease中构造查询,请添加用于连接数据库的代码。在MATLAB中有很多方法可以实现这一点。指定您是否正在使用Toolbox。您所说的
key1=x
是什么意思?你的意思是
x中的键1
?是的,x中的键1。我的x不是常数,我想构造一个查询。ThxAre您是否能够通过MATLAB连接到SQL数据库,并且您只是询问如何构造查询字符串?还是你在问如何从MATLAB连接?是的,我可以连接到数据库。我在问如何在matlab脚本@DanPlease中构造查询,请添加用于连接数据库的代码。在MATLAB中有很多方法可以实现这一点。指定您是否正在使用Toolbox。您所说的
key1=x
是什么意思?你的意思是
x中的键1
?是的,x中的键1。我的x不是常数,我想构造一个查询。汉克斯,看来没有更好的办法了。我想我可以将x直接输入mysql的内存,然后让mysql使用它作为条件。谢谢,似乎没有更好的方法。我想我可以将x直接输入mysql的内存,然后让mysql使用它作为条件。