我有一个包含文本字段的表格,该字段中大约有 3 到 4 个句子,具体取决于行。
现在,我正在制作一个自动完成的 html 对象,我想开始输入一个单词的开头,并且数据库返回以数据库文本字段中的这些字母开头的单词。
文本字段示例:我喜欢鱼棒,鱼帽也很棒
在我的自动完成中,如果我输入“fish”,它会建议“fishsticks”和“fishhat”
一切正常,但查询。
我可以轻松找到包含特定单词的行,但我不能只提取单词,而不是全文。
select data_txt from mytable match(data_txt) against('fish', IN BOOLEAN MODE) limit 10
我知道它很脏,但我无法重新排列数据库。
谢谢您的帮助!
编辑:
这是我得到的,感谢布伦特沃登,它不干净但它有效:
SELECT DISTINCT
SUBSTRING(data_txt,
LOCATE('great', data_txt),
LOCATE(' ' , data_txt, LOCATE('great', data_txt)) - LOCATE('great', data_txt)
)
FROM mytable WHERE data_txt LIKE '% great%'
LIMIT 10
关于如何避免LOCATE
一遍又一遍地使用相同的表达式的任何想法?