如何获得与mysql查询类似的单词

时间:2016-11-24 22:22:01

标签: php mysql

我进行了自动填充搜索,我希望从说明中获得字词建议。例如,我有一个帖子描述:"这是样本描述"。

我使用此查询

$sql ="SELECT post_content FROM {$wpdb->posts} WHERE LOWER(post_content) LIKE LOWER('%".$s."%') AND post_status='publish'";

但我得到了所有匹配的描述。我怎样才能得到一个与查询匹配的单词?例如,如果我写" sam ..."我想只得到"样品"单词,或者如果我写"样本des ..."我想得到"样本描述"不完全描述那个词就在哪里。

1 个答案:

答案 0 :(得分:1)

如果适合您,可以试试这个:

<强>样品

SELECT 
    SUBSTRING_INDEX(
        SUBSTRING('this is sample description and more' FROM LOCATE('sample des','this is sample description and more'))
        ,' '
        ,LENGTH('sample des') - LENGTH(replace('sample des', ' ', '')) +1
    ) as result;

<强>结果

result
sample description

为您的sql尝试此查询:

$sql ="
SELECT 
    SUBSTRING_INDEX(
        SUBSTRING(post_content FROM LOCATE('".$s."',post_content))
        ,' '
        ,LENGTH('".$s."') - LENGTH(replace('".$s."', ' ', '')) +1
    )
 FROM {$wpdb->posts} 
 WHERE LOWER(post_content) LIKE LOWER('%".$s."%') AND post_status='publish'";

请告诉我它是否适合您(不是测试)