2015-07-20 105 views
0

這裏是我的代碼段,這是返回所有的記錄,而我只希望傳回最接近的匹配過濾搜索在MySQL + PHP數據庫表來獲得每次搜索最接近的結果

if (isset($_POST['name_query'])){      
     if(preg_match("/^[ 0-99 a-zA-Z]+/", $_POST['name_query'])) 
      $sql="SELECT client_id, id_num, name, surname FROM clients WHERE name LIKE '%" . $name_query."%' " ; 

    else if(isset($_POST['surname_query'])){ 
     if(preg_match("/^[ 0-99 a-zA-Z]+/", $_POST['surname_query'])){ 
      $sql="SELECT client_id, id_num, name, surname FROM clients WHERE surname LIKE '%" . $surname_query."%' " ; 

    elseif (isset($_POST['id_query'])){ 
     if(preg_match("/^[ 0-99 ]+/", $_POST['id_query'])){ 
      $sql="SELECT client_id, id_num, name, surname FROM clients WHERE client_id LIKE '%" . $id_query."%' " ; 
+2

您只需要決定「更接近匹配」用它作爲'ORDER BY'。 – Vatev

回答

0

您可以使用這樣的查詢,如這個 - 我在我們的Joomla-Page中使用它進行自定義搜索。在這個查詢中,我使用了「searchword」作爲我們正在搜索的單詞。 (長度(標題)-LENGTH(替換(LOWER(標題),LOWER('searchword'),'')))/ LENGTH('searchword')* 10+(LENGTH(introtext)-LENGTH (REPLACE(LOWER(introtext),LOWER('searchword'),'')))/ LENGTH('searchword')* 1)AS點