Marcus Buffett
Marcus Buffett

Reputation: 1389

SQLite query in populated table not returning anything?

I have created a db called AllWords.db in sqlite that contains a list of all english words (count:172820). When I issue a select all query, it returns a list of all 172820 words. Also, when I print the count of the table words like this :

SELECT COUNT(*) FROM words;

the output is 172820, so the database clearly has all the words included in it. However, when I try to check if a word exists (the only thing I'll want to do with this database), it doesn't print anything :

SELECT * FROM words WHERE word="stuff";

returns nothing.

The database is a single table with the only column being 'words', which has all the words as rows. Any help would be greatly appreciated, thanks.

Upvotes: 1

Views: 231

Answers (2)

Marcus Buffett
Marcus Buffett

Reputation: 1389

Answering my own question because I figured out what was wrong. To populate the table, I had written a python program to parse a file called words.txt (all words, separated by newlines), into sqlite. My problem was the query turned into :

INSERT INTO WORDS VALUES('englishWord\n')

And that messed up the database. I fixed that and it started to work, thanks to @ScoPi for the hint with using LIKE, it helped me figure out that there was a stray newline character.

Upvotes: 0

Olaf Dietsche
Olaf Dietsche

Reputation: 74018

Just to be sure you use a word in your database, look into your table with

select * from words limit 10

house
stuff
tree
...

and then select with one of the words you see

select * from words where word = 'stuff'

Edit: fixed where clause according to @MichaelEakins

Edit2: Unfortunately there's no difference between single and double quotes in this case, see SQL Fiddle

Upvotes: 1

Related Questions