如何在SQL中搜索带星号的cloumn?

时间:2018-11-13 07:12:08

标签: mysqli

我尝试对数据库创建高级搜索。 我想做这样的事情:如果用户的搜索类型= overf**w 并且在我的数据库中有一个Cloumn,他的值= overflow-向他展示。 这是我的代码:

$name = str_replace('*', '_', $name);
SELECT name FROM table WHERE name LIKE CONCAT('%', ?, '%')

它不起作用,我不知道是什么问题。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您不能使用LIKE,需要使用REGEXP()进行通配符搜索。用.*替换*或**。要仅返回以给定值开头的名称,请在正则表达式的开头使用^

SELECT name 
FROM actors 
WHERE name REGEXP('^overf.*w')

我不了解php,但您的$ name参数应设置为这样(用伪代码)

$name = '^' + replace($name, '**', '.*')