PHP,数据库:使用空格保留和搜索字符串

时间:2012-04-21 16:34:52

标签: php mysql

我有以下情况:

我正在存储可能包含空格的用户输入。问题是,当我从数据库(SELECT)执行MySql时,它找不到匹配项。如果我删除空格,对db的搜索工作,但是如果我以这种方式存储它们,那些字符串就会很混乱。

如何在数据库AND中正确存储字符串(带有空格)正确执行将发现那些存储字符串的SELECT语句?

感谢您的帮助。

更新

以下是我现在正在使用的内容:

$filename = "This is a string with white space";
//being stored in the db like this

$trim_string = preg_replace("/\s+/", "", $filename);
//search db as Thisisastringwithwhitespace

仍然找不到匹配?

1 个答案:

答案 0 :(得分:0)

如果用户知道整个字符串,我会选择Blake建议在Mysql查询中使用TRIM(),如果你想要部分搜索,并希望它快速,我会创建一个带有单词和另一个用于字符串中出现的位置,如下所示:

Word( id, string )
WordInString( id, source_string_id, word_id, position )

搜索分为两步:

1. get the words ids
2. get from WordInString the top list with greater number of Words hits, and show the options to the end user.

希望它有所帮助!