1


データベース内のエントリをフィルタリングするときに、REGEXP を調べています。次のようなコンマで区切られた値を持つ列があります:
id col A
|---|------------------------|
| | 1 | P:1、P:2、P:5、P:7 |
| | 2 | P:6、P:8、P:10、P:11 |
| | 3 | P:4、P:3、P1、P:0 |
| | 4 | P:2,P:1 |
|---|------------------------|

値 P:1 を含む行が必要だとしましょう。次の形式で REGEXP を設計するにはどうすればよいですか。

SELECT * FROM `table` WHERE `col A` REGEXP '?'

私は行1 3と4を取得するように?私の以前のアプローチは、単に使用することでした:

SELECT * FROM `table` WHERE `col A` LIKE 'P:1'

ただし、技術的には P:1 が含まれているため、当然行 2 も返されます...
任意の助けをいただければ幸いです。この問題は正規表現の専門家にとってはかなり簡単だと思います!

乾杯、
アンドレアス

4

1 に答える 1

1

単語の境界を読む必要があります。

[[:<:]]、[[:>:]]

これらのマーカーは、単語の境界を表します。それぞれ、単語の先頭と末尾に一致します。単語は、単語文字が前後にない一連の単語文字です。単語文字は、alnum クラスの英数字またはアンダースコア (_) です。

于 2012-11-13T22:53:40.867 に答える