2017-05-13 5 views
0

이 SQL 쿼리는 현재 모든 단어가 포함 된 모든 값을 반환합니다. 예를 들어 Mon을 입력하면 Armoring, Behemoth, Emotion 등이 반환됩니다. Monkey, Moment, Monday 등의 값으로 시작하는 단어를 반환하고 싶습니다.이 작은 SQL 쿼리에 문제가 발생했습니다.

희망 사항은 이해할 수 있지만, 코드는 다음과 같습니다.

function action_ajax_drug_suggest() { 

    global $wpdb; 

    if (empty($_GET['term'])) { 
     die(); 
    } 

    $drug_name = $wpdb->esc_like($_GET['term']); 

    $table = $wpdb->prefix . self::TABLE_DRUG; 

    $posts = $wpdb->get_results($wpdb->prepare(" 
       SELECT name 
       FROM {$table} 
       WHERE name LIKE '%%%s%%' 
        AND details <> '' 
       LIMIT 5", 
      $drug_name)); 


    foreach($posts as $post) { 
     $names[] = array(
      'label' => $post->name, 
     ); 
    } 

    wp_send_json($names); 

} 
+0

그래서에서 선도적 인'%%를'제거된다을 떠나보십시오 'LIKE'. – Rogue

+0

시도해 보았습니다. 응답이 없습니다. –

답변

0

처음 두 %% 징후 LIKE '%%%의 %%'LIKE '%의 %%'

+0

이 제안을 해주셔서 감사합니다. 그러나이 제안은 효과가 없습니다. 왜 그런지에 대한 감각을 갖지만, 그것이 제가 시도한 첫 번째 것들 중 하나였습니다. –