MySQL LIKE语句和PHP变量

时间:2009-11-18 10:16:31

标签: php mysql

我需要以下代码才能运作。

我正在尝试使用PHP变量并向其添加[charlist]通配符语句

有人可以帮助弄清楚它为什么不起作用。

基本上它可以工作,如果我删除[charlist]通配符,但我需要它来找到PHP变量中的所有字母

我的代码如下

LIKE ''[' $searchWord ']%'' 

2 个答案:

答案 0 :(得分:3)

要使用字符类,您需要使用REGEXP运算符。

此外,在字符类之后,您需要指示重复运算符。 %匹配任何字符串(并且仅用于LIKE),但是如果要应用它以使其匹配字符类中包含的任何字母系列,则需要执行以下操作:

$query = '`column` REGEXP "[' . $searchWord  . ']+"';

或者,使用*来匹配0或更多。 (+是1或更多)

答案 1 :(得分:0)

如果$ searchWord是一个数组,请首先通过调用implode来尝试:

$listOfCharacters = str_split($searchWord, 1);
$implodedString = implode(',', $listOfCharacters;

内爆字符串现在是逗号分隔字符串而不是数组。 PHP不会将数组本身转换为字符串。 然后你可以使用它:

LIKE ''[' $implodedString ']%''

虽然我怀疑在没有字符串连接的情况下使用它。我们在这里错过了一些代码吗?