2

私はこのようなmysqlの正規表現を使用しています

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

クエリは、name フィールドの値が 1.1.1 の結果を表示します。このような

pk  name
5   1.1
6   1.1.1

しかし、私は1.1だけを一致させる必要があります

何か案は?

4

1 に答える 1

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

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

もちろん、なぜ正規表現を使用したいのかという疑問があります。これは、一致する単なるリテラル文字列であり、変数パターンではないためです。

英数字と非英数字 (または文字列の先頭/末尾) の間で一致する単語の先頭/末尾のアンカーを使用していたため、正規表現は失敗[[:>:]]1まし.1.1.1

于 2012-04-13T10:58:52.570 に答える