1

以下の例を参照してください

where '1|2|||1|' like '%%|%%|%%|%%|[^3]|' /* it will return true if the string between last two pipe symbols is not like '3'*/

上記のコードは問題なく動作します。

同様に、最後の 2 つのパイプの間の文字列の式を 10 や 11 とは異なるように作成する必要があります。少なくとも 10 とは異なります。以下のように試してみました。

where '1|2|||8|' like '%%|%%|%%|%%|[^10]|'

上記のステートメントは、10 だけでなく、1、0、および 10 に対して false を返します。したがって、上記のクエリは、1 を別の文字列と見なし、0 を別の文字列と見なします。最後の 2 つのパイプの間の文字列が 10 の場合にのみ false を返す式を期待しています。1 または 0 の場合ではありません。

中括弧も使用してみました。しかし、動作が異なります。

  where '1|2|||8|' like '%%|%%|%%|%%|[{^10}]|

また、最後の 2 つのパイプの間の文字列を 10 または 11 にすることはできません。

注:クエリで「 OR」または「NOT LIKE」を使用することはできません。

何か案は?

4

1 に答える 1

2

各文字を個別に確認する必要があります

「...Not 1 の後に not (0 または 1)」のように

where '1|2|||8|' like '%%|%%|%%|%%|[^1][^01]|'
于 2013-05-15T12:24:04.030 に答える