我在sqlite中创建了一个名为AllWords.db的数据库,其中包含所有英语单词的列表(计数:172820)。当我发出select all查询时,它返回所有172820个单词的列表。另外,当我打印这样的表格字数时:
SELECT COUNT(*) FROM words;
输出为172820,因此数据库显然包含了所有单词。但是,当我尝试检查某个单词是否存在时(我唯一想要对此数据库执行的操作),它不会打印任何内容:
SELECT * FROM words WHERE word="stuff";
什么都不返回。
数据库是一个单独的表,其中唯一的列是'单词',其中所有单词都是行。非常感谢任何帮助,谢谢。
答案 0 :(得分:1)
为了确保您在数据库中使用单词,请使用
查看表格select * from words limit 10
房子
东西
树
...
然后选择您看到的一个单词
select * from words where word = 'stuff'
编辑:根据@MichaelEakins
修复了where子句Edit2 :不幸的是,在这种情况下单引号和双引号之间没有区别,请参阅SQL Fiddle
答案 1 :(得分:0)
回答我自己的问题,因为我弄清楚出了什么问题。为了填充表,我编写了一个python程序来解析一个名为words.txt的文件(所有单词,由换行符分隔)到sqlite中。我的问题是查询变成了:
INSERT INTO WORDS VALUES('englishWord\n')
这搞砸了数据库。我修复了它并开始工作,感谢@ScoPi提供了使用LIKE的提示,它帮助我弄清楚有一个流浪换行符。