通配符SQL查询 - 缩小搜索结果

时间:2015-12-03 07:20:25

标签: php sql wordpress

我正在Wordpress数据库上进行通配符搜索查询"帖子标题"。

我的结果会有所不同:

  • "帖子标题 - 1"
  • "帖子标题2"
  • "帖子标题#3"
  • "在帖子标题1"
  • 之后
  • "在帖子标题1"
  • 之前
  • "在帖子标题2"
  • 之后
  • "在帖子标题2"
  • 之前

我想将我的通配符结果限制为:

  • "帖子标题 - 1"
  • "帖子标题2"
  • "帖子标题#3"

我可以实现这个想法或算法吗?

代码

$query = "SELECT ID, `post_title` FROM `wp_posts` WHERE `post_title` LIKE '%".$titleRequest."%'";

$results = $wpdb->get_results($query);

3 个答案:

答案 0 :(得分:1)

像这样修改查询:

$query = "SELECT ID, `post_title` FROM `wp_posts` WHERE `post_title` LIKE '".$titleRequest."%'";

$results = $wpdb->get_results($query);

最初的%表示“在此处匹配任何内容” - 但您不希望这样做,您只想匹配以请求的标题开头的内容。第二个%没问题 - 毕竟,你确实希望在帖子标题后匹配内容。

答案 1 :(得分:0)

WHERE查询中的SQL子句中尝试此操作:

WHERE FieldName LIKE 'Post Title%';

答案 2 :(得分:0)

您需要在搜索中实施模糊逻辑。但它是一个非常复杂的算法,幸运的是已经有一些插件能够像“Relevanssi”那样激发这种算法。安装后,它将覆盖您当前的搜索机制并添加自己的搜索机制,然后您可以相应地修改它。