2017-06-20 2 views
0

J'ai essayé plusieurs méthodes mais je continue à obtenir un objet retourné.Utilisation de COUNT pour trouver le nombre de lignes dans la table dans sqlite3

import sqlite3 

connection = sqlite3.connect('films.db') 
cur = connection.cursor() 

def createTable(): 

    connection.execute('CREATE TABLE IF NOT EXISTS FILMS(TITLE TEXT NOT NULL , YEAR INT NOT NULL,RATING INT NOT NULL,unique(TITLE))') 
    connection.execute('INSERT OR IGNORE INTO FILMS VALUES(? , ? , ?)',('Middle Men','2010','6.6')) 
    connection.execute("SELECT * FROM FILMS") 

    row_count = cur.execute("SELECT Count(*) FROM FILMS") 
    print(row_count) 

    cur.close() 
    connection.commit() 
createTable() 

Je continue de recevoir cet objet curseur retourné lorsque j'imprime le compte: objet sqlite3.Cursor à 0x027CE820 est-il une raison? ma syntaxe est-elle incorrecte?

+0

vous devez compter quelque chose comme une colonne, des exemples: https://www.techonthenet.com/sqlite/functions/count.php –

Répondre

0

Vous récupérez l'objet entier. Au lieu de:

row_count = cur.execute("SELECT Count(*) FROM FILMS") 

Do:

cur.execute("SELECT Count(*) FROM FILMS") 
row_count = cur.fetchone() 
print(row_count) 

Cela aura la ligne qui a le compte en elle. Si vous faites une sélection qui avait plusieurs lignes, vous pouvez faire

cur.fetchall() 
+0

Ou un liner: cur.execute ("SELECT Count (*) de FILMS"). fetchone() – mkingsbu

+1

Merci beaucoup, je l'apprécie vraiment :) – Noob