Попробуйте использовать fetchone
:
cursor.execute("SELECT COUNT(*) from result where server_state='2' AND name LIKE '"+digest+"_"+charset+"_%'")
result=cursor.fetchone()
result
будет содержать кортеж с одним элементом, значение COUNT(*)
.
Итак, чтобы найти количество строк:
number_of_rows=result[0]
Или, если вы предпочитаете сделать это одним махом:
cursor.execute("SELECT COUNT(*) from result where server_state='2' AND name LIKE '"+digest+"_"+charset+"_%'")
(number_of_rows,)=cursor.fetchone()
PS. Хорошей практикой также является использование параметризованных аргументов, когда это возможно, поскольку он может автоматически приводить аргументы для вас при необходимости и защищать от внедрения SQL.
Правильный синтаксис для параметризованных аргументов зависит от вашего адаптера python / database (например, mysqldb, psycopg2 или sqlite3). Это будет выглядеть примерно так:
cursor.execute("SELECT COUNT(*) from result where server_state= %s AND name LIKE %s",[2,digest+"_"+charset+"_%"])
(number_of_rows,)=cursor.fetchone()