【发布时间】:2014-04-16 07:20:53
【问题描述】:
我在 MySQL 中有一个名为 hash 的表,它有 2 个字段,primary_key 和 hashValue。我使用以下代码将数据输入其中:
insert into hash values (1,'car dog play ball morning dark night')
insert into hash values (2,'car dog play ball people morning dark night sydney love')
现在,我需要执行以下操作。
- 输入单词列表。
- 输入一个百分比值。
- 比较每行输入的单词,并获取这些单词在行中可用的百分比。
- 获取高于百分比值的数据行。
例如:
假设我输入以下单词集:sydney love people track
假设我输入的百分比为:20
现在,primary_key = 2 的行包含 10 个单词,其中 3 个(悉尼爱人)在输入的单词列表中。这 3 个单词意味着第二行中的 30%(10 个单词中的 3 个单词)。由于输入的百分比是 20 并且 30 高于该百分比,因此我需要检索该行。就这样,如果还有其他20行以上,我也需要获取。
如何在 MySQL 中做这种事情?请注意我的数据库知识低于平均水平(我知道 Java 中的插入、删除、更新和 JDBC)。
我以前用 Java 做过这个。我逐行读取文件并做了同样的事情。这需要太多时间。现在我要用数据库替换文件,但我不能在这里应用相同的方法,因为原始数据库会非常大,并且通过 Java 读取每一行都会变得一团糟。仅供参考,将有数百万条记录。
【问题讨论】:
-
你100%确定你需要在数据库中做吗?因为用编程语言做起来很简单。
-
@TomaszKowalczyk:是的。我以前用Java做过这个。我读了一个文件并做了同样的事情。这需要太多时间。而且,我不能在这里应用相同的方法,因为原始数据库会非常大,读取每一行都会很混乱。
标签: java mysql sql database select