我想列出与缩写相匹配的字词。举个例子,如果我正在搜索 AI 或人工智能,那么它应该列出任何包含“人工智能”作为句子一部分的记录。类似地,当我搜索 MCA 或计算机应用程序大师时,它会列出包含计算机应用程序大师作为句子一部分的所有记录。
假设我的MySQL表是包含TopicID,TopicName,TopicDesc列的“主题”。 示例数据:http://sqlfiddle.com/#!9/77f8df
注意:我被要求在没有额外的表格或列的情况下实现它。
如果需要更多信息,请与我们联系。
答案 0 :(得分:0)
要搜索缩写,请将RLIKE
与正则表达式一起使用。例如,在搜索" MCA":
SELECT * FROM TOPICS WHERE
TOPICNAME RLIKE '[[:<:]]M.*[[:<:]]C.*[[:<:]]A.*'
OR
TOPICDESC RLIKE '[[:<:]]M.*[[:<:]]C.*[[:<:]]A.*'
其中[[:<:]]
表示单词的开头,.*
表示任何文字字符。
请注意,文档中所述的Unicode字符有一些限制,但只要您的文本是英文的,您就可以了。
对于常规文本搜索,请使用LIKE
,就像要搜索的文字一样:
SELECT * FROM TOPICS WHERE
TOPICNAME LIKE '%Master of Computer Application%'
OR
TOPICDESC LIKE '%Master of Computer Application%'