Для INSERT, используя оператор LIKE с переменной - PullRequest
2 голосов
/ 24 января 2012

Как правильно написать следующую INSERT, используя LIKE?

provider = provider
cursor.execute("""INSERT INTO raw_financials (provider, vendor_id) 
                  VALUES (%s, %s)""", 
                 ((SELECT provider FROM main_app_provider 
                   WHERE provider LIKE %s%, %provider), vendor_id)

Например, с приведенным выше оператором LIKE «Apple» будет соответствовать «Apple Inc.».

1 Ответ

3 голосов
/ 24 января 2012

Используйте INSERT ... SELECT ... FROM вариант команды INSERT:

sql = """
    INSERT INTO raw_financials (provider, vendor_id)
    SELECT provider, %s
    FROM main_app_provider
    WHERE provider LIKE %s
    """ 
args = (vendor_id, '%'+provider+'%')
cursor.execute(sql, args)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...