我想搜索一个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/