难倒在这个小SQL查询上

时间:2017-05-13 17:43:32

标签: sql search autocomplete wildcard

此SQL查询当前正在返回包含单词的所有值。例如,键入Mon将返回Armoring,Behemoth,Emotion等等。我希望返回以值开头的单词,例如Monkey,Moment,Monday等。

希望我的解释有道理,代码如下。

    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 );

}

1 个答案:

答案 0 :(得分:0)

尝试省略前两个%%符号 LIKE&#39; %%% s %%&#39; 变成 LIKE&#39;%s %%&#39;