2010-10-16 5 views
3

Je souhaite lire une colonne d'une table de base de données et, pour chaque ligne que j'ai lue, lire des lignes d'une autre table. les éléments que je lis des deux tables sont des chaînes, mon code est:error Colonne inconnue dans 'clause where' matlab utilisant un tableau de chaînes

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 

quand je lance le code que je reçois cette erreur: Unknown column « khlkuu » dans « where », khlkuu est une rangée dans la première table. Je sais que cette erreur est due à ne pas entourer khlkuu avec une citation, mais je ne sais pas comment le faire. des idées?

+1

question connexe: [? Pourquoi suis-je recevoir cette erreur lors de la création d'une requête SQL dans Matlab] (http://stackoverflow.com/questions/1941439/why-am-i-getting-this-error- when-creation-an-sql-query-in-matlab) – gnovice

Répondre

4

Pour obtenir des guillemets dans une chaîne, vous devez utiliser des guillemets. En outre, l'appel à sprintf semble inutile.

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' 
+0

merci beaucoup pour votre réponse Jonas, vous l'avez fait si facile :) – thn

+0

@thn: Si vous avez trouvé ma réponse utile, merci de bien vouloir l'accepter – Jonas