Mysql搜索将句点视为空格

时间:2011-10-15 14:38:58

标签: php mysql

现在我有一堆数据以格式存储在我的数据库中。

this.is.the.name

而不是有空格,有一段时间。

我只是想知道如何使用mysql搜索来处理像空格一样的句子?或者只是拥有它,如果用户搜索“这就是”它将返回条目。

4 个答案:

答案 0 :(得分:3)

与其他答案相比,您可以在搜索字词上执行替换,而不是在字段上进行替换。通过这种方式,MySQL仍然可以使用field1上的索引。假设句点总是在那里而不是空格

SELECT field1, field2 FROM table WHERE field1 = REPLACE('user input', ' ', '.')

如果你想在没有圆点的情况下进行可视化,你也可以在SELECT部分进行反向替换:

SELECT REPLACE(field1, '.', ' '), field2 FROM table 
WHERE field1 = REPLACE('user input', ' ', '.')

或者您甚至可以考虑更新您的数据库,而不是与之抗争:

UPDATE table SET field1 = REPLACE(field1, '.', ' ')

答案 1 :(得分:2)

您可以在replace clausole中使用mysql的WHERE函数:

replace([field_name],'[string_to_find]','[string_to_replace]');

答案 2 :(得分:0)

您可以使用REPLACE功能。

 SELECT REPLACE('this.is.the.name', '.', ' ');

 --> 'this is the name'

答案 3 :(得分:0)

您可以regular expression search查找匹配的条目。在搜索数据库之前,您必须进行一些预处理。

将下划线字符用作单个通配符:

SELECT name FROM table WHERE name LIKE "this_is_the_%";
# returns
#  - this.is.the.name
#  - this-is-the-name
#  - this.is_the_name
#  - this is the name

也查看REGEXP搜索。