2011-02-07 24 views
4

MySQLで "1800flowers"で "1-800-flowers"を検索するにはどうすればよいですか?MySQL検索でハイフンを無視する

データは「1-800-flowers」ですが、「1800flowers」で検索したいと思います。

+0

あなたは、あなたのデータは、PHPと同じようにMySQLへ渡される前に、あなたのハイフンを削除することができますでしょう変換する簡単な方法 'str_replace($ search_str、「 - 」、「」);' – user973254

答えて

0

置き換える機能を使用するには、列にインデックスを使用するすべての能力を殺す、しかします:

select * 
    from YourTable 
    where replace(YourColumn, '-', '') = '1800flowers' 
2

あなたの問題は、単にハイフンを無視している場合は、私はこのように、それらを排除するためにREPLACEを使用して提案することができます:あなたが「似て音」の文字列を探しているなら

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

そうでない場合、あなたはSOUNDEX機能を見てしたいことがあります。

6

1800flowers(無視するすべての文字を置換)とそれを検索して2番目の列を作成することをお勧めします。そうすれば、インデックス作成をフルに活用できます。

すべての既存のデータが

UPDATE table SET columnname_without_hyphens = REPLACE(columnname, "-", ""); 
関連する問題