私はこのような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だけを一致させる必要があります
何か案は?
select * from table1 where
table1.name
REGEXP '^1.1$'
のみ1.1
が許可されていることを確認します (ただし、1X1
または111
ドットが任意の文字に一致するため - リテラルのドットに一致させたい場合は、を使用します^1\.1$
)。
もちろん、なぜ正規表現を使用したいのかという疑問があります。これは、一致する単なるリテラル文字列であり、変数パターンではないためです。
英数字と非英数字 (または文字列の先頭/末尾) の間で一致する単語の先頭/末尾のアンカーを使用していたため、正規表現は失敗[[:>:]]
し1
まし.
た1.1.1
。