2012-03-27 9 views
1

レディガガ、ジェイソン・ムラーズ、デュースキャブ・キューティーなどのアーティスト名の表があります。mysqblカラムのスペースを無視するには?

スペースなしのアーティストを検索できます。たとえば、名前がjasonmrazのアーティストテーブルを検索します。

mysqlでこれを行う方法はありますか?または、これらのタイプの名前を保持するためにテーブルに新しい列を作成する必要がありますか?

答えて

4
SELECT REPLACE(your_col, " ", "") ... 

または

SELECT your_col 
WHERE REPLACE(your_col, " ", "") = "somestringsansspaces" 
0

あなたは

SELECT REPLACE('Lady Gaga', ' ', ''); 

REPLACE()を使用しLadyGaga

0

を返しますREPLACE関数を使用することができ、提案されるように、動作します。 しかし、これはあなたのサーバーではもっとうまくいくことに注意してください。大規模なテーブルを持っているなら(名前は疑いますが気にすることはありません)、名前のフィールドにスペースを入れないでください。

+0

私はこの議論をたくさん聞いていますが、最近は大量のデータベースアクセスに関する私の経験が私にそれを疑うようになりました。文字列関数はオーバーヘッドの大部分を提供するものではありません。しかし、私はそれほど大きな減速を見たことはありませんでした(ただし、極端な場合は常に存在し、数百万のレコードなど)が、何百万もの追加フィールドエントリがあります。私は、それほど邪悪ではないかどうかはわかりません。テストするのは楽しいでしょうか? –

+0

これは一般的な考え方に反していますが、ここでは "計算できるものは保存しないでください"と考えています。 (http://blogs.msdn.com/b/oldnewthing/archive/2004/12/20/327369.aspx)置き換えには計算コストが伴いますが、私は**これらのコストがスキーマの調整よりも大きいと推測しています、データの冗長性/スペースのオーバーヘッド、およびクエリの調整が含まれます。 – hexparrot

+0

私のアーティストのテーブルは110,218行..だから – Mike