1

我在 sqlite 中创建了一个名为 AllWords.db 的数据库,其中包含所有英文单词的列表(计数:172820)。当我发出全选查询时,它会返回一个包含所有 172820 个单词的列表。另外,当我像这样打印表格单词的计数时:

SELECT COUNT(*) FROM words;

输出是 172820,所以数据库清楚地包含了所有的单词。但是,当我尝试检查一个单词是否存在(我唯一想要对这个数据库做的事情)时,它不会打印任何东西:

SELECT * FROM words WHERE word="stuff";

什么都不返回。

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

4

2 回答 2

1

只是为了确保您在数据库中使用了一个词,请查看您的表

select * from words limit 10

房子的
东西

...

然后选择您看到的单词之一

select * from words where word = 'stuff'

编辑:根据@MichaelEakins 修复 where 子句

Edit2:不幸的是,在这种情况下单引号和双引号之间没有区别,请参阅SQL Fiddle

于 2012-11-28T12:37:49.400 回答
0

回答我自己的问题,因为我知道出了什么问题。为了填充表格,我编写了一个 python 程序来将一个名为 words.txt 的文件(所有单词,由换行符分隔)解析为 sqlite。我的问题是查询变成了:

INSERT INTO WORDS VALUES('englishWord\n')

这弄乱了数据库。我修复了它并开始工作,感谢@ScoPi 使用 LIKE 的提示,它帮助我弄清楚有一个流浪的换行符。

于 2012-11-30T14:41:03.540 回答