2012-11-28 87 views
1

我在sqlite中创建了一个名为AllWords.db的数据库,其中包含所有英文单词列表(count:172820)。当我发出一个选择所有查询时,它将返回所有172820个单词的列表。此外,当我打印这样的词表的计数:填充表中的SQLite查询不返回任何内容?

SELECT COUNT(*) FROM words; 

输出为172820,所以数据库显然已经包含在这一切的话。然而,当我尝试检查一个字存在(我想这个数据库做的唯一的事情),它不显示任何信息:

SELECT * FROM words WHERE word="stuff"; 

回报什么。

数据库是一个单独的表,其中唯一的一列是“单词”,其中所有单词都是行。任何帮助将不胜感激,谢谢。

+0

我认为你确定“stuff”是数据库中的一个单词吗? – ScoPi

+1

列名为'word'还是'words'? –

+0

如果我的问题的答案是肯定的,那么看看[SELECT * FROM words WHERE word LIKE'%stuff%']是否返回任何内容。 – ScoPi

回答

0

回答我的问题,因为我想通了什么问题。为了填充表格,我编写了一个python程序来解析名为words.txt的文件(所有文字,用换行符分隔),并将其写入sqlite。我的问题是查询变成:

INSERT INTO WORDS VALUES('englishWord\n') 

而且搞砸了数据库。我解决了这个问题并开始工作,感谢@ScoPi提供了使用LIKE的提示,它帮助我发现有一个陌生的换行符。

1

只是要确保你用一个词在你的数据库,看看你的表

select * from words limit 10 

房子
东西

...

,然后选择你看到的单词之一

select * from words where word = 'stuff' 

编辑:固定的where子句根据@MichaelEakins

EDIT2:不幸的是在这种情况下,单引号和双引号之间没有任何区别,见SQL Fiddle

相关问题