错误'where子句'中的未知列使用字符串数组的matlab

时间:2010-10-16 06:54:08

标签: sql matlab

我想从数据库表中读取一列,对于我读过的每一行,从另一个表中读取一些行。我从两个表中读取的元素都是字符串,我的代码是:

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,但我不知道该怎么做。任何想法?

1 个答案:

答案 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'