2012-04-13 5 views
2

を使用してクエリを選択し、私は、クエリは、名前フィールドにも値1.1.1を持っている結果を示し、このMySQLのREGEX

select * from table1 where 
table1.name 
REGEXP '[[:<:]]1.1[[:>:]]' 

ようregulear表現イムのMySQLを使用しています。この

pk name 
5 1.1 
6 1.1.1 

似ていますが、私はわずか1.1

任意のアイデアと一致する必要がありますか?

答えて

2
select * from table1 where 
table1.name 
REGEXP '^1.1$' 

1.1が許可( - あなたは文字通りのドットを一致させたい場合は、^1\.1$を使用するだけでなく、1X1または111ドットは任意の文字に一致するため)されていることを確認します。

もちろん、正規表現を使用する理由は、可変パターンではなく、照合しているリテラル文字列だからです。

あなたの正規表現は、あなたが(/文字列の末尾または開始)英数字と非英数字の間で一致してスタート - /終了の単語アンカーを使用していたために失敗し、そして1.[[:>:]]一致するため、正規表現がマッチしました少なくとも部分的には1.1.1である。