MySQL - 从找到的字符串中获取其余字符串

时间:2017-06-09 10:26:41

标签: mysql substr

我有一个问题,我使用简单查询从列(VARCHAR)中进行选择,用户搜索了什么,并从数据库中附加+1字符串。

例如,如果我有table个以下值(title):

My name is SOMEONE.
Have a great day.
It's possible.
Mouse on the way.
My mouse is on other way.
Is there any mouse?

用户想要检索关键字mouse

我希望从上面的值中输出他:

Mouse on
mouse is
mouse?

此外,如果用户键入Mouse on,则应返回 Mouse on the 依此类推,将数据库中的一个字符串附加到已找到的字符串(如果有)。

我可以在数据库之外进行,但是我需要在使用限制来检索字符串DISTINCT值之后。

现在我使用SUBSTRING_INDEX(title , ' ', ".$totalWords.") 其中$ totalWords是用户发送到我的程序。

我的查询问题是当您输入other时,它会找到并返回: My mouse但这不是我想要的,我希望它从找到的字符串+1附加输出,所以它将是other way

如果我不是那么清楚,我会尽力解释它。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用LOCATE(substr,str) 1找到用户输入第一次出现的位置。然后使用SUBSTRING(str FROM pos) 2从用户输入的第一个出现位置开始获取子字符串,最后使用SUBSTRING_INDEX(title , ' ', ".$totalWords.")获取第二个字。

PS:听起来像是自动完成功能?可能有更好的方法来做这个比关系数据库