Mysql 如何匹配SQL中短语中的一个关键字
我有一个有两列的表。当用户输入两个单词进行搜索时,它应该返回部分匹配的行。示例:用户搜索输入=Mysql 如何匹配SQL中短语中的一个关键字,mysql,sql,Mysql,Sql,我有一个有两列的表。当用户输入两个单词进行搜索时,它应该返回部分匹配的行。示例:用户搜索输入=“a bb” 示例数据库表联系人: firstname,lastname ======== ========== a , bb ccc d , ee fff g , hh iii 示例SQL查询: SELECT * FROM contact where firstname like %a bb% or lastname like %a bb
“a bb”
示例数据库表联系人:
firstname,lastname
======== ==========
a , bb ccc
d , ee fff
g , hh iii
示例SQL查询:
SELECT * FROM contact
where firstname like %a bb%
or lastname like %a bb%
嗯。连接列并更改模式如何:
concat_ws(' ', firstname, lastname) like replace('%a bb%', ' ', '%')
这使用
concat_ws()
允许两列中的任何一列NULL
firstname(如“a%”或lastname(如“%bb%”)
将空格替换为%
和concat(firstname),,lastname)替换为…
,或类似的内容that@RiggsFolly,谢谢。提问时,我将遵循规则和检查表。@Cid,concate之后,结果将是“bb ccc”,如果我的字符串是“a ccc”,我如何确保它返回第一行?@ZahidRouf您错过了第一部分。“将空格替换为%
”。因此,您将比较像“%a%ccc%”这样的“bb-ccc”