Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何匹配SQL中短语中的一个关键字_Mysql_Sql - Fatal编程技术网

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”