Вы, похоже, храните многозначный атрибут в денормализованном виде.
Если вам нужно сделать ориентированные на множество сравнения этих значений, они должны храниться в строках ,не столбцы.
Вы можете "отменить" их, чтобы каждое значение находилось в отдельной строке, например:
SELECT 1 AS ValNo, A1 AS Val FROM MyTable WHERE rowID=1
UNION ALL
SELECT 2, A2 FROM MyTable WHERE rowID=1
UNION ALL
SELECT 3, A3 FROM MyTable WHERE rowID=1
UNION ALL
SELECT 4, A4 FROM MyTable WHERE rowID=1
UNION ALL
...
UNION ALL
SELECT 100, A100 FROM MyTable WHERE rowID=1
Затем, поместив это в подзапрос, получите 6 самых низких значений.
SELECT ValNo, Val
FROM ( ... subquery above ... ) AS t
ORDER BY Val
LIMIT 6
Было бы лучше сохранить таблицу с одним столбцом для значения и до 100 строк для каждого rowId
:
CREATE TABLE MyNewTable (
RowId INT,
OrdinalId TINYINT, -- 1 to 100
Aval INT,
PRIMARY KEY (RowId, OrdinalId)
);
Тогда вы можете запросить его более просто:
SELECT OrdinalId, Aval
FROM MyNewTable
WHERE RowId = 1
ORDER BY Aval
LIMIT 6;