常に最小の数値を最初の列に格納し、最大の数値を2番目の列に格納するように、テーブルに何を入れるかを制御するのはどうですか?もちろん、それが「同じこと」を意味する限り。データベースに到達する前にそれを行う方がおそらく安価です。
これが不可能な場合は、フィールドをそのまま保存しますが、番号順に2つの他のフィールドに複製して、その上に主キー(擬似コードっぽい)を作成します:
COLUMN A : 2
COLUMN B : 1
COLUMN A_PK : 1 ( if new.a < new.b then new.a else new.b )
COLUMN B_PK : 2 ( if new.b > new.a then new.b else new.a )
これは、トリガーを使用して(Ronaldの応答のように)簡単に実行することも、アプリケーションの上位で処理することもできます。