从db中按字符串选择一行

时间:2017-01-23 09:53:41

标签: php laravel

我的问题是我想从数据库中选择一行,与搜索文本最相似。

$string = "I want to buy a new notebook";

在DB中我有例如:

1st row|  keywords: buy notebook | message: okay i will help u |
2nd row|  keywords: sell notebook | message: okay i will help u |
3rd row|  keywords: notebook exchange | message: okay i will help u |

结果将是第一行,因为它包含笔记本甚至购买,并且没有包含仅笔记本的所有行。

我希望你明白我想要的东西。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用全文搜索...可能您可以获得解决方案。

  

MySQL服务器中的全文搜索允许用户运行全文查询   对MySQL表中基于字符的数据。你必须创建一个   在运行全文查询之前,表上的全文索引   表

SELECT * FROM your_table_name WHERE MATCH(keywords,message) AGAINST ('I want to buy a new notebook' IN NATURAL LANGUAGE MODE);

请阅读此文档 - http://www.w3resource.com/mysql/mysql-full-text-search-functions.php

答案 1 :(得分:0)

我是否可能想要搜索与单词的一部分最相似的行?例如:

C = repmat(A', 1, size(B, 2)) + B

但在DB中我只有

$string = "Basicly i am playing a game."

即使我只有字符串"基本上"没有"基本"?

感谢。