我想从数据库表中读取一列,对于我读过的每一行,从另一个表中读取一些行。我从两个表中读取的元素都是字符串,我的代码是:
query1 = 'select col1 from MyDb.table1 order by col1';
[x1]= mysql(query1);
for i=1:size(x1)
my=char(x1(i,1));
query2=sprintf('%s%s%s%s',['select col1 from MyDb.table2 where col1=', my, ' or col2=', my]);
[x2]=mysql(query2);
end
当我运行代码时出现此错误:未知列'khlkuu' 在'where子句'中,khlkuu是第一个表中的一行。我知道这个错误是因为没有引用khlkuu,但我不知道该怎么做。任何想法?
答案 0 :(得分:4)
要获取字符串中的引号,您需要使用双引号。此外,似乎没有必要调用sprintf
。
my = 'something';
query2= ['select col1 from MyDb.table2 where col1=''', my, ''' or col2=''', my,'''']
query2 =
select col1 from MyDb.table2 where col1='something' or col2='something'