繁体   English   中英

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

[英]how to select from mysql table from matlab variable (array/cell)

我有一张这样的桌子

mysql中的表

我在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}

我不知道我的SQL,但我想它非常相似。 这意味着您需要做的就是将x转换为字符串'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) = [];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM