2012-11-28 126 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

相關問題