2013-05-16 79 views
2

我想搜索一個字+數字,如果該SQL沒有返回任何內容,我會默認它爲一個完整的LIKE搜索,有沒有什麼辦法可以在SQL中實現這樣的正則表達式?如何在我的MySQL查詢中使用正則表達式?

例子:

$queryWord = potato 
  • 應該首先尋找馬鈴薯+ somenumber最多4個位數
  • 應該+ 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 

} 

回答

3

只要改變你的查詢到這一點:

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

,這裏是一個Rubular that proves the Regex

+1

感謝一堆:) –

+1

只是說,有2個關鍵字可以在MySQL中用於正則表達式匹配:'REGEXP'和'RLIKE',它們是一樣的。 –

+0

@亨利克·巴塞洛斯,謝謝! –