How to modify the built-in 'fetch' function so that it can select columns flexibly?

2 次查看(过去 30 天)
I was trying to write a function which fetch only the columns I like from a MySQL table.
easy_fetch(conn, 'mytable', 'A', 'B') % error, incorrect sqlquery string
easy_fecth(conn, 'mytable', 'A,', 'B') % this works but clumsy
function T = easy_fetch (conn, tablename, varargin)
sqlquery = ['select ' varargin{:} ' from ' tablename]; % I don't know how to insert commas here.
T = fetch(conn, sqlquery);
end
That fuction does not create right sql query string because it doesn't have commas between A and B
wrong_string = 'select A B from mytable'.
fetch(conn, wrong_string) % error
% the correct query string should have commas between A and B
right_string = 'select A, B from mytable'
fecth(conn, right_string) % success
How would I put ',' between A and B in the easy_fetch function? Or is there better way to flexibly fetch columns? I have checked out a couple packages shared in File Exchange. None has codes I can use. Thanks for any suggestions.

采纳的回答

Steven Lord
Steven Lord 2022-11-10
s = {'Larry', 'Curly', 'and Moe'}
s = 1×3 cell array
{'Larry'} {'Curly'} {'and Moe'}
s2 = strjoin(s, ', ')
s2 = 'Larry, Curly, and Moe'
  1 个评论
Simon
Simon 2022-11-10
I am very thankful for your solution. It works! The modified version does what I want.
T = easy_fetch(conn, 'mytable', 'A', 'B') % works smoothly :-)
%%
function T = easy_fetch (conn, tablename, varargin)
cols = strjoin(varargin, ',');
sqlquery = ['select ' cols ' from ' tablename];
T = fetch(conn, sqlquery);
end

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Database Toolbox 的更多信息

产品


版本

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by