我有一张表(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?
答案 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."%'"