MySQL从两列中搜索文本

时间:2010-03-27 14:57:59

标签: mysql regex

我有一张表(tbl_world),看起来像这样

  id | first_name | last_name | age | class |

现在我想搜索first_name或last_name

中任意位置的文本

我使用下面的mysql查询

 "SELECT * FROM tbl_world WHERE REGEXP '".$word."' IN( first_name, last_name)";

其中$word是用户输入(意味着如果我搜索'hell'然后'hello'以及'wellhell'也会在结果中返回)

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

补充问题:我应该使用LIKR还是RLIKE?

3 个答案:

答案 0 :(得分:2)

我会这样做:

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

答案 1 :(得分:0)

 "SELECT * FROM tbl_world 
WHERE first_name LIKE  '%".$word."%' 
OR last_name LIKE  '%".$word."%'";

(如果要在多个字段中搜索字符串,请考虑启用全文搜索。)

答案 2 :(得分:0)

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