我想搜索一个word+数字如果SQL什么也不返回,我将默认它为一个完整的LIKE搜索,有没有办法在SQL中实现这样的regex?
例子:

$queryWord = potato

它应该首先搜索土豆+一些4位数的数字
它应该返回所有匹配的马铃薯+一些数字
如果失败,则默认为两边都有通配符的完整搜索
这样地:
$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 that proves the Regex

关于php - 如何在MySQL查询中使用正则表达式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16596055/

10-12 12:47