Effacer les filtres
Effacer les filtres

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

1 vue (au cours des 30 derniers jours)
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.

Réponse acceptée

Steven Lord
Steven Lord le 10 Nov 2022
s = {'Larry', 'Curly', 'and Moe'}
s = 1×3 cell array
{'Larry'} {'Curly'} {'and Moe'}
s2 = strjoin(s, ', ')
s2 = 'Larry, Curly, and Moe'
  1 commentaire
Simon
Simon le 10 Nov 2022
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

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by