数据库类型:MySql
假设我的表中有两行:
[1。] “彼得昨天去了公园”
[2。] “彼得要去公园 明天“
...并假设我将其作为模式字符串:
“Mark 昨天去影院
...我怎样才能进行查询以获得第一条记录?
可能还有许多其他情况,第一条记录将是我正在寻找的记录:
- “伦纳德昨晚去了图书馆”
- “Jake 去年去了伦敦”
......等等。
注意:我没有显示表结构,因为真正的问题是我必须寻找的条件。但是,我们可以假设该表名为表,并且有两个字段( id 和 string )
修改:我知道有FULLTEXT index in MySql可能有助于实现这一目标。我也读过他们do not work with innoDB tables(我正在与之合作)。 (如果这是不可能的,我可以重新设计我的数据库,使这个表成为MyISAM)
编辑:正如eggyal在对此问题的第一条评论中所说,“v5.6”也支持 innoDB 表格。
修改:另一个例子是:
[1。] 天堂今天看起来很蓝
[2。] 今天大火看起来很红
我希望通过假设获得第一条记录:
海洋今天看起来很蓝
...作为模式字符串。
(在这种情况下,第二条记录也会匹配,与第一条记录的相关性较低,因为它包含今天 $ >
答案 0 :(得分: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)