sql >> データベース >  >> RDS >> Oracle

値をチェックするためのコンマ付きの列値に含まれるかどうかのOracleクエリデータ

    区切り文字で囲まれたサブ文字列を確認する必要があります:

    SELECT PROFILEID
    FROM   WA_BT_TBL_PROFILE P
    WHERE  ', ' || P.ALLOWED_IP_ADDRESS || ', ' LIKE '%, 192.168.183.28, %';
    

    ただし、1つの値に複数のアイテムを格納しないように、データベーステーブルを変更することをお勧めします。

    CREATE TABLE Allowed_IP_Addresses(
      PROFILEID          VARCHAR2(20)
                         CONSTRAINT AllowIP__ProfileID__FK REFERENCES WA_BT_TBL_PROFILE( PROFILEID ),
      CLASSA             NUMBER(3,0),
      CLASSB             NUMBER(3,0),
      CLASSC             NUMBER(3,0),
      CLASSD             NUMBER(3,0),
      IP_ADDRESS         VARCHAR2(15)
                         GENERATED ALWAYS AS (CLASSA||'.'||CLASSB||'.'||CLASSC||'.'||CLASSD) VIRTUAL,
      CONSTRAINT AllowIP__P_A_B_C_D__PK PRIMARY KEY ( PROFILEID, CLASSA, CLASSB, CLASSC, CLASSD )
    );
    

    次に、値を個別に保存し(そして、サブネット範囲を簡単に検索し)、必要に応じてプロファイルテーブルに結合できます。



    1. null許容列に実際のNULL値を挿入するにはどうすればよいですか?

    2. 自動インクリメント列の値にギャップが1つ以上あることがあるのはなぜですか?

    3. phpを使用してSQLに同じ主キーを持つ複数の行を挿入します

    4. 各 INSERT でストアド プロシージャから影響を受ける行を返し、ASP.NET ページに表示します。