1

次のような列を含むテーブル offer_detail があります

    Offer_ID           Customer_IDS
    EF123 100,200,300   
    EF124 300,700,800

パラメータとして持つクエリを書いていcustomer idます。結果に基づいcustomer_idてフィルタリングされます。たとえば、入力customer_idが 100の場合、 csvoffer_idに含まれるすべての を取得する必要があります。customer_id

regexp_like関数を使ってみた

select offer_id 
  from offer_detail 
 where regexp_like(customer_ids,':INPUT_PARAMETER')

パラメータが単一の値の場合は正常に機能します。パラメータに複数の値が含まれている場合、これは機能しません。回避策はありますか?親切に助けてください。Oracle 11g を使用しています。

4

1 に答える 1

1

以下のように、RegEx の OR 演算子を使用して複数のパラメーターを送信してみることができます。

select offer_id 
from offer_detail 
where regexp_like(customer_ids,'700|800|200');

しかし、それはまた悪いデザインです。

于 2013-03-15T18:27:14.780 に答える