PHP Mysql在where子句

时间:2018-10-25 09:38:58

标签: regex

我有代码,当我搜索ID 90和2792时,输出结果如下:

RefID = 90、290、2792

我只想精确搜索;即90和2792。但是问题是它也显示了所有90(s)。

在搜索框中,我输入90,然后输入空格,然后输入2792。

我的代码是:

$query = $_GET['query']; 
// gets value sent over search form

$words = explode(' ', $_GET['query']);
$regex = implode('|', $words);


WHERE candidatelist.RefID REGEXP '{$regex}'

1 个答案:

答案 0 :(得分:1)

您可以使用

$regex = '(^|[^0-9])(' . implode('|', $words) . ')($|[^0-9])';

请参见resulting regex demo

详细信息

  • (^|[^0-9])-字符串的开头或除数字以外的任何字符
  • (90|2792)-902792
  • ($|[^0-9])-字符串结尾或除数字外的任何字符。