できるだけ具体的にするようにしています。
現在、MS SQL Server 2012 を使用しています。
単純化されたテーブル PlanMission にはこれらの行が含まれています
|---------------------|---------------------|
| Bold_Id | MCurrentStates |
|---------------------|---------------------|
| 10776 |[original[scheme] |
|---------------------|---------------------|
| 10777 |[operative][inproc] |
|---------------------|---------------------|
| 10778 |[operative][closed] |
|---------------------|---------------------|
| 10779 |[operative][planopen]|
|---------------------|---------------------|
Bold_id 列は、一意の ID です。列 MCurrentStates は、状態を部分文字列として含む VARCHAR 列です。
状態は [planopen] のように角かっこで囲まれた単純な文字列であるため、列は空であるか、上記の例のように多くの状態がある場合があります。
MS SQLで私がこれを好きなら
SELECT Bold_Id, MCurrentStates
FROM PlanMission
WHERE MCurrentStates LIKE '%[planopen]%'
うまくいきません。MCurrentStates で空でないすべての行をリストするだけです。
挿入で解決[]
SELECT Bold_Id, MCurrentStates
FROM PlanMission
WHERE MCurrentStates LIKE '%[[]planopen]%'
それはうまくいきます。
これを PostgreSQL でも行いたいと思います。簡単な解決策は、ブラケットを取り外すことです。
しかし、私の質問は、MS SQL と PostgreSQL の両方で同じクエリを使用してこれを行うにはどうすればよいかということです。