我有以下情况:
我正在存储可能包含空格的用户输入。问题是,当我从数据库(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
仍然找不到匹配?
答案 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.
希望它有所帮助!