我如何使用正则表达式在我的MySQL查询


How do I use a regex in my MySQL query?

我想搜索一个词+数字,如果SQL返回什么,我将默认它为一个完整的LIKE搜索,有任何方法来实现正则表达式这样的SQL?

的例子:

$queryWord = potato

  • 应该首先搜索土豆+一些不超过4位的数字
  • 它应该返回所有与potato+somenumber匹配的
  • 如果失败,则默认在两侧使用通配符进行完整搜索

:

$sql = "SELECT * FROM `words` WHERE `searchWord` LIKE '$queryWord+number';";
$result = mysqli_query($con, $sql);
if (mysqli_num_rows($result) == 0) {
    $sql =  "SELECT * FROM `words` WHERE `searchWord` LIKE '%$queryWord%';"; // full search
    $result = mysqli_query($con, $sql);
    // etc etc
}

把你的查询改成这样:

$sql = "SELECT * FROM `words` WHERE `searchWord` REGEXP '$queryWord('d{1,4})';";

,这里是一个Rubular证明了正则表达式