2017-05-13 14 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

を最初の2 %%の兆候を除外してみてください「好き」。 – Rogue

+0

これを試してみましたが、私はヌル応答を得ます。 –

答えて

0

だからから `先頭の` %%を削除 LIKE '%%%の%%'LIKE '%sの%%' になる

+0

これらの提案に感謝しますが、この1つは機能しません。それがなぜ起こるのかが分かりますが、それは私が試した最初の事の一つです。 –

関連する問題