我想搜索一个词+数字,如果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证明了正则表达式