Какво ще кажете за контролиране на това, което влиза в таблицата, така че винаги да съхранявате най-малкото число в първата колона и най-голямото във втората? Стига, разбира се, „означава“ едно и също нещо. Вероятно е по-евтино да го направите, преди дори да стигне до базата данни.
Ако това е невъзможно, можете да запазите полетата както са, но да ги дублирате в числов ред в две ДРУГИ полета, върху които ще създадете първичен ключ (псевдокод-ish):
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 )
Това може лесно да се направи със спусък (както в отговора на Роналд) или да се обработва по-горе, в приложението.