【发布时间】:2017-08-24 03:54:51
【问题描述】:
我有两个相关的表格,分别称为 words 和 definitions。每个表有超过 250,000 行。这是我的表的设置方式。
单词
id word
1 book
2 love
3 hate
4 smile
and it goes on.
定义
id wordid pos definition
1 1 v to enter in a book or list; record; register.
2 1 n a book, a bible
3 2 n noun definition of love
4 2 v verb definition of love
and it goes on.
我写了一个 php,从单词中选择 5 个结果,使用:$query = "SELECT id, word FROM words LIMIT 5";
然后我循环 5 个结果中的每一个,例如
foreach($results as $row){
$wordid = $row['id'];
$word = $row['word'];
// I really dont want to do this way
$definitions_query = "SELECT * FROM definition WHERE wordid = $wordid";
// After the query
foreach($definitions_result as $row1){
$definition = $row1['definition'];
$pos = $row1['pos'];
// Desired Results
$data[$word][$pos][] = $definition;
}
}
我的代码完成了任务,但是太慢了。
所以,我加入了"SELECT * FROM words JOIN definition ON words.id = wordid LIMIT 5" 之类的表格。
现在,查询只提取 5 个结果,我无法将单词限制为 5 行。
我的目标是以非常快速的方式提取 5 个单词及其许多定义。请记住我想要的结果数组格式。我该怎么办?非常感谢您的帮助。
【问题讨论】:
-
先只拉出五个单词,然后与定义表进行连接。
-
@kkmishra 你介意输入查询吗?