如果该 SQL 没有返回任何内容,我想搜索单词+数字,我将默认它为完整的 LIKE
搜索,有没有办法在 SQL 中实现这样的正则表达式?
示例:
$queryWord = potato
- 它应该首先搜索potato+somenumber 最多 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})';";
关于php - 如何在 MySQL 查询中使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596055/