私は十分な注意を払いましたが、まだ立ち往生しています。検索文字列で最後に存在する同じ文字がどこにあるかを特定し、その文字に続く文字を確認する必要がある状況があります。これを行うには RLIKE を使用する必要があると思いますが、別の方法があるかもしれません。table.column コンテンツ文字列の例:
MSH|Stuff|morestuf|||
PID|stuff|morestuff|morestuffofanotherlength||wejustfollowedablank|morestuff2||^1^|||..|||||..|.||.
私は何を数える 19 パイプ | キーワード PID の後、次の文字が | でないかどうかを確認します。(パイプは 19 本以上ある場合もあれば、少ない場合もあります。探すパイプが 19 本ない場合は爆破したくありません)
LOCATE 関数を使用して PID の後の開始位置を見つけることができることはわかっていますが、その位置を式に渡して | の 19 回の出現のカウントを開始する方法がわかりません。開始位置を超えています。
つまり、pspad の部分的な正規表現は'\(.+\)PID[|]{19}'
、mysql でこれをエラーにできないように見えるため、構文が異なるか、完全に間違った方向に進んでいます。
助言がありますか?