與表Words
像這樣用一個字一個字的每一行
create table Words
(
Word varchar(25) primary key,
Freq int not null
)
你可以使用order by newid()
一個隨機單詞。
select top 1 Word
from Words
order by newid()
頻率列是int
其中的每一個字具有至少一個1和詞語即更頻繁的具有更高的值。要使用order by newid()
,我們必須創建一個表格,其中包含freq值較高的單詞的重複項。這可以使用tally table完成。
要跟蹤您已選擇的單詞,您可以使用其他表格。
create table PickedWords
(
Word varchar(25) primary key
)
這是你的語句來選定單詞添加到表PickedWords
和使用output
子句字返回給客戶端。
insert into PickedWords
output inserted.Word
select top 1 W.Word
from Words as W
inner join tsqlc_Tally as T
on W.Freq > T.N
where W.Word not in (select Word
from PickedWords)
order by newid()
對於一個真正令人傷心的筆記本電腦,使用1.2 GHz處理器處理1.000.000字時,需要9秒。
如果您的表格中已經有重複的單詞而不是頻率列,那麼我們可以跳過理貨表,需要2秒來選擇一個單詞。
你使用哪個數據庫引擎? –
你正在使用哪個數據庫?一個SQL解決方案可能是有關db的知識。 –
你是否需要爲每個用戶單獨使用? – svick