5

数据库类型:MySql

假设我的表中有两行这样的:

[1.] “彼得昨天
公园” [2.] “彼得明天要去公园”

...并假设我将其作为模式字符串:

“马克昨天去了电影院”

...如何查询以获取第一条记录?在许多其他情况下,第一条记录将是我正在寻找的记录:

-“伦纳德昨晚去了
图书馆” -“杰克去年去了伦敦”

...等等。


注意:我没有显示表结构,因为真正的问题是我必须寻找的条件。但是,我们可以假设该表称为table,并且有两个字段(idstring

编辑:我知道 MySql 中有FULLTEXT 索引可能有助于完成这项工作。我还读过它们不适用于innoDB(我正在使用)。(如果不可能,我可以重新设计我的数据库以使该表成为 MyISAM)

编辑:正如 eggyal 在对该问题的第一条评论中所说,“v5.6”也支持innoDB表。

编辑:另一个例子是:

[1.]今天的天空看起来很蓝
[2.]今天的火看起来很红

我想通过假设获得第一条记录:

今天的海洋看起来很蓝

...作为模式字符串。

(在这种情况下,第二个记录也将是匹配项,相关性低于第一个记录,因为它包含$ today

4

1 回答 1

3

您可以like在查询中使用。请参阅以下示例:

mysql> select * from statements;
+----------------------------------+
| sentence                         |
+----------------------------------+
| Peter went to the park yesterday |
| Mark went to the cinema          |
| Peter is going the park tomorrow |
| Mark went to the park yesterday  |
| Mark went to the park tommorow   |
+----------------------------------+
5 rows in set (0.00 sec)

mysql> select * from statements where sentence like '% went to the park yesterday';
+----------------------------------+
| sentence                         |
+----------------------------------+
| Peter went to the park yesterday |
| Mark went to the park yesterday  |
+----------------------------------+
2 rows in set (0.00 sec)

mysql> select * from statements where sentence like '% went to the park %';
+----------------------------------+
| sentence                         |
+----------------------------------+
| Peter went to the park yesterday |
| Mark went to the park yesterday  |
| Mark went to the park tommorow   |
+----------------------------------+
3 rows in set (0.00 sec)
于 2013-01-03T12:59:58.407 回答