Имена столбцов не могут передаваться в строке SQL как параметры в API БД. И это тоже не имело бы смысла.
Если вам необходимо проверить ввод имени столбца, предварительно очистите его.
Подобная строка должна быть указана в качестве параметра, хотя
Следующий пример кода будет лучше, если переменная columns содержит список строк для имен столбцов:
rows = archesDB.read_all("""SELECT %s
FROM arches
WHERE lower(arch) like %%s""" % (",".join(columns),),
("%%%s%%" % (arch.lower(),),))
Сначала имена столбцов вставляются в первую подстановку (% s), а последние %% s преобразуются в% s.
Затем ("%%% s %%"% (arch.lower (),),) создает строку с% string_content%.
И, наконец, db api экранирует% string_content% и добавляет к нему кавычки, которые в итоге делают запрос.