Вы можете использовать функции MIN()
и MAX()
:
SELECT taxon1, gene1, taxon2, gene2
FROM orthologs
WHERE MIN(taxon1, taxon2) = 25 AND MAX(taxon1, taxon2) = 37
Если значения 25 и 37 являются параметрами, вы можете сделать это:
SELECT taxon1, gene1, taxon2, gene2
FROM orthologs
WHERE MIN(taxon1, taxon2) = MIN(:param1, :param2) AND MAX(taxon1, taxon2) = MAX(:param1, :param2)
Существует также опция ROW VALUES
с оператором IN
:
SELECT taxon1, gene1, taxon2, gene2
FROM orthologs
WHERE (taxon1, taxon2) IN((25, 37), (37, 25))
или:
WHERE (25, 37) IN((taxon1, taxon2), (taxon2, taxon1))
Вы также можете использовать это для своего второго требования:
SELECT taxon1, gene1, taxon2, gene2
FROM orthologs
WHERE (55, 123) IN((taxon1, gene1), (taxon2, gene2))