Home > Blockchain >  Pandas and SQL; How to select specific row in database?
Pandas and SQL; How to select specific row in database?

Time:08-16

I use Pandas to read this SQL using Python (works using SELECT * FROM table):

   ID                      Timestamp   
1  AA34234234234234234234  B534  
2  AA34234234234234234234  B864 
3  cv0Qc0PJFDAP5S4T6pn69Y  B435  
4  cv0Qc0PJFDAP5S4T6pn69Y  B978 

All fields are "TEXT".

Now want to access the last row identical with ID = AA34234234234234234234 and enter this line:

status = pd.read_sql('SELECT * FROM table WHERE ID = AA34234234234234234234', database).tail(1)

I expect to get:

   ID                      Timestamp  
2  AA34234234234234234234  B864

But I get an error instead:

(sqlite3.OperationalError) unrecognized token: "AA34234234234234234234" [SQL: 'SELECT * FROM table WHERE ID = AA34234234234234234234'] (Background on this error at: https://sqlalche.me/e/14/e3q8)

I am sure I do a silly syntax mistake but I can't seem to narrow down the issue! The link is not helpful for me at least.

Suggestions?

CodePudding user response:

If ID column is of string type, you will need to wrap the ID in quotes:

status = pd.read_sql('SELECT * FROM table WHERE ID = "4234234234234234234234"', database).tail(1)

That is my suspicion of what is happening. I cannot be sure without knowing the table schema.

  • Related