如何在MySQL查询中使用正则表达式?

时间:2013-05-16 19:41:24

标签: php mysql regex

如果SQL没有返回任何内容,我想搜索单词+数字,我会将其默认为完整的LIKE搜索,有没有办法在SQL中实现这样的正则表达式?

示例:

$queryWord = potato
  • 首先应搜索马铃薯+最多4位数字
  • 它应该返回所有匹配土豆+ 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

}

1 个答案:

答案 0 :(得分:3)

只需将您的查询更改为:

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

这是一个Rubular that proves the Regex