MySQLで "1800flowers"で "1-800-flowers"を検索するにはどうすればよいですか?MySQL検索でハイフンを無視する
データは「1-800-flowers」ですが、「1800flowers」で検索したいと思います。
MySQLで "1800flowers"で "1-800-flowers"を検索するにはどうすればよいですか?MySQL検索でハイフンを無視する
データは「1-800-flowers」ですが、「1800flowers」で検索したいと思います。
置き換える機能を使用するには、列にインデックスを使用するすべての能力を殺す、しかします:
select *
from YourTable
where replace(YourColumn, '-', '') = '1800flowers'
あなたの問題は、単にハイフンを無視している場合は、私はこのように、それらを排除するためにREPLACE
を使用して提案することができます:あなたが「似て音」の文字列を探しているなら
SELECT ... WHERE REPLACE(column, '-', '') ...
そうでない場合、あなたはSOUNDEX
機能を見てしたいことがあります。
1800flowers
(無視するすべての文字を置換)とそれを検索して2番目の列を作成することをお勧めします。そうすれば、インデックス作成をフルに活用できます。
すべての既存のデータが
UPDATE table SET columnname_without_hyphens = REPLACE(columnname, "-", "");
あなたは、あなたのデータは、PHPと同じようにMySQLへ渡される前に、あなたのハイフンを削除することができますでしょう変換する簡単な方法 'str_replace($ search_str、「 - 」、「」);' – user973254