2017-09-21 11 views
0

J'essaye d'optimiser ce bloc de code pour utiliser une seule requête plutôt que de faire des boucles encore et encore. Je souhaite utiliser la clause IN avec une variable qui contient toutes les sous-chaînes possibles, mais je n'arrive pas à l'obtenir.Comment utiliser une variable dans une clause IN Mysql. Script Python

this_id_list = "'/a/b/c/d/e' , '/a/b/c/d', '/a/b/c', '/a/b', '/a'" 
result = db.conn[db_read].query("SELECT x AS xX FROM link WHERE _deleted = 0 AND _ref IN($this_id_list)") 

Une idée de ce que je fais mal et comment y remédier? J'apprécierais vraiment toute contribution! C'est un script Python btw.

+0

ce qui ne $ this_id_list ressembler? La clause IN attend des valeurs délimitées par des virgules (et a indiqué des chaînes si). –

+0

@KevinBott this_id_list = ['/ a/b/c/d/f', '/ a/b/c/d', '/ a/b/c', '/ a/b', '/ a' ] –

Répondre

1
this_id_list = "'/a/b/c/d/e' , '/a/b/c/d', '/a/b/c', '/a/b', '/a'" 

Cela devrait être une chaîne

+0

J'ai essayé cela et cela n'a toujours pas fonctionné. D'autres idées? –

+0

Quel résultat obtenez-vous réellement? –

+0

Quand je l'exécute, le résultat finit par être faux –