Ya no necesitas buscar más en otras páginas porque estás al sitio necesario, contamos con la solución que necesitas recibir pero sin problemas.
Solución:
La idea es tener una consulta como esta:
cursor.execute("SELECT ... IN (%s, %s, %s)", (1, 2, 3))
donde cada uno %s
será sustituido por elementos en su lista. Para construir esto string consulta que puedes hacer:
placeholders= ', '.join(['%s']*len(article_ids)) # "%s, %s, %s, ... %s"
query = 'SELECT name FROM table WHERE article_id IN ()'.format(placeholders)
finalmente
cursor.execute(query, tuple(article_ids))
Para Python3 puedes usar
article_ids = [1,2,3,4,5,6]
sql_list = str(tuple([key for key in article_ids])).replace(',)', ')')
query ="""
SELECT id FROM table WHERE article_id IN sql_list
""".format(sql_list=sql_list)
Resultando en
>>> print(query)
SELECT id FROM table WHERE article_id IN (1, 2, 3, 4, 5, 6)
que puedes alimentar
cursor.execute(query)
Esto también funciona para article_ids de solo 1 valor (donde tuple genera (1,)
).
También funciona para matrices de cadenas:
article_titles = ['some', 'article titles']
Resultando en
SELECT id FROM table WHERE article_title IN ('some', 'article titles')
Si piensas que te ha resultado de provecho nuestro post, agradeceríamos que lo compartas con el resto entusiastas de la programación y nos ayudes a dar difusión a nuestra información.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)