2

そのSQLが何も返さない場合、単語+数字を検索したいのですが、デフォルトで完全LIKE検索にします.SQLでこのような正規表現を実装する方法はありますか?

例:

$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

}
4

1 に答える 1

3

クエリを次のように変更するだけです。

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

そして、これが Regex を証明する Rubular です

于 2013-05-16T19:45:52.440 に答える