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

1 visualización (últimos 30 días)
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.

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by