sql LIKE查询只返回完全匹配,而不是类似的匹配

时间:2014-06-04 10:15:38

标签: php mysql wordpress wpdb

我正在进行$wpdb查询以搜索媒体库中的项目。搜索类型的作品,除了它只返回完全匹配。

我在库中有两个图像,一个名为run,另一个名为running,如果我只搜索run,则只返回完全匹配,running不归还。我在这里错过了什么吗?我以为LIKE会返回包含这些字符的内容吗?

这是我的查询,我正在使用AJAX将其粘贴到页面中。

include_once($_SERVER['DOCUMENT_ROOT'].'/wp-load.php' );

global $wpdb;

if( isset($_GET['nameLike']) ) {
    $search = $_GET['nameLike'];
} else {
    $search = '';
}

$results = $wpdb->get_results( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_status = 'inherit' AND post_title LIKE %s", $search), ARRAY_A);

foreach ($results as $result) : ?>

    <?php $image = wp_get_attachment_image( $result[ID], array(200, 150) ); ?>

    <div class="grid-1-4"><?php echo($image); ?></div>

<?php endforeach ?>

1 个答案:

答案 0 :(得分:1)

我在评论中写了答案,我在这里也会写如何在WP中正确实现它。您可以在搜索字词中添加“%”。

$results = $wpdb->get_results( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_status = 'inherit' AND post_title LIKE %s", '%' . like_escape($search) . '%'), ARRAY_A);

编辑:从here

获取WP示例