MySQL从两列中搜索文本

MySQL从两列中搜索文本,mysql,regex,Mysql,Regex,我有一张像这样的桌子(tbl_world) id | first_name | last_name | age | class | 现在我想搜索文本,它可以是名字或姓氏中的任何位置 我正在使用下面的mysql查询 "SELECT * FROM tbl_world WHERE REGEXP '".$word."' IN( first_name, last_name)"; 其中,$word是用户输入(意味着如果我搜索'hell',那么'hello'以及'wellhell'也会在结果中返回)

我有一张像这样的桌子(tbl_world)

  id | first_name | last_name | age | class |
现在我想搜索文本,它可以是名字或姓氏中的任何位置

我正在使用下面的mysql查询

 "SELECT * FROM tbl_world WHERE REGEXP '".$word."' IN( first_name, last_name)";
其中,
$word
是用户输入(意味着如果我搜索'hell',那么'hello'以及'wellhell'也会在结果中返回)

以上查询显示错误,请建议我优化mysql中的搜索方法

添加问题:我应该使用LIKR还是RLIKE

 "SELECT * FROM tbl_world 
WHERE first_name LIKE  '%".$word."%' 
OR last_name LIKE  '%".$word."%'";
(如果要在多个字段中搜索字符串,请考虑启用全文搜索。)

我会使用以下方法:

"SELECT * FROM tbl_world WHERE first_name REGEXP '" . $word .
    "' OR  last_name REGEXP '" . $word . "'"

您必须转义、过滤或绑定
$word
,以防止SQL注入。
"SELECT * FROM tbl_world WHERE first_name LIKE '%'".$word."%' OR last_name LIKE '%".$word."%'"