如何从mysql编码的字符串中获取相关结果

时间:2016-08-22 08:14:18

标签: php mysql search encoding

我使用$encodestr = base64_encode($str);对字符串进行编码,并将此字符串存储在数据库中。现在我想使用MATCH(title) AGAINST('$title')搜索此字符串,但我无法获得任何结果。我以自己编码的形式存储了许多项目标题。现在,如果用户想要搜索“有趣的产品”,那么我使用MATCH(title) AGAINST('$title')进行搜索,它在编码之前工作,但在编码之后它不起作用。
任何人都可以帮助我如何使用PHP和MySQL从我自己编码的字符串中获得最相关的结果吗?

我使用过这个查询:

$titleTomatch = base64_encode($title);

$rel_query ="select v_id ,title,image_med_url,v_view, MATCH(title, des)
AGAINST('$titleTomatch') as score  from v_data where MATCH(title,des)
AGAINST('$titleTomatch') or cat = '$cat' and block =0 and del =0  order by score desc limit 15";

2 个答案:

答案 0 :(得分:0)

因此,当您将标题与存储在db中的所有编码标题进行匹配时,只需对您的标题进行编码,然后将其输入到sql中。

$titleToMatch = base64_encode($title);

然后使用MATCH(title ) AGAINST('$titleToMatch')

之类的查询

答案 1 :(得分:0)

不行。

FULLTEXT索引将对任何形式的加密/编码/ etc字符串起作用。 FULLTEXT需要“看到”字词。

也就是说,你不能以任何方式使MATCH通过base64_encode损坏字符串。

LIKEREGEXP也不会起作用,至少不是所有时间。 (三分之一的时间位将正确对齐,而那些可能正常工作。)