MySQL搜索忽略连字符

时间:2011-02-07 19:50:35

标签: mysql

如何在MySQL中搜索“1800flowers”中的“1-800-flowers”?

我有数据“1-800-flowers”,但我希望通过“1800flowers”找到它。

3 个答案:

答案 0 :(得分:6)

您可能最好创建第二列,用1800flowers填充(替换所有要忽略的字符)并搜索。这样,您就可以充分利用索引。

转换所有现有数据的快捷方式是

UPDATE table SET columnname_without_hyphens = REPLACE(columnname, "-", "");

答案 1 :(得分:2)

如果您的问题只是忽略连字符,我建议您使用REPLACE来消除连字符,如下所示:

SELECT ... WHERE REPLACE(column, '-', '') ...

否则,如果您正在寻找“听起来相似”的字符串,您可能需要查看SOUNDEX函数。

答案 2 :(得分:0)

使用replace函数会杀死在列上使用索引的任何能力,但是:

select *
    from YourTable
    where replace(YourColumn, '-', '') = '1800flowers'
相关问题