2012-01-04 5 views
0

特定の列の特定の文字に基づいてMySQLデータベースからSELECTデータを取得することに問題があります。この列には1と0の文字列が含まれます。文字列の例: 0101000000列内の特定の文字に基づいてデータベースから行を選択する

が、私はこのような何かを見てSELECT行のみを必要とする(Xはワイルドカードです):X1X1X0XXXX

私はSELECTクエリでこれを行うにはどうすればよいですか?それはそれほど難しくないと確信しています。

Sincerly、

アクセルLatvala

+0

文字の置換は、簡単にgoogleで確認できます。任意の文字のワイルドカードはアンダースコア(_)です。 –

答えて

0

このCOLが文字列の場合、あなたが行を一致させることができる必要があります:それはちょうどあなたが保存している0と1だ場合

myRow LIKE '_1_1_0____' 

(バイナリの場合)INTにキャストし、ビットマスクを使用してテーブルをクエリする必要があります。この方法は、はるかに少ない記憶領域を使用し、はるかに高速になるが、実装するのがより複雑になるだろう。

MySQLのパターンマッチングdoc:http://dev.mysql.com/doc/refman/5.1/en/pattern-matching.html

+0

ありがとうございました!作品は不思議! –

+0

問題ありません。注目すべき点は、MySQLがこのクエリのインデックスを使用する方法はないと思うので、数十万行または数百万行に達すると高速になるわけではありません。 –

関連する問題