У меня есть таблица в базе данных MySQL, определенная следующим образом:
CREATE TABLE doc_types (
id INT UNSIGNED PRIMARY KEY,
types SET('foo','bar','baz','quux',...) NOT NULL
)
Я бы хотел получить значение столбца types
в виде списка разделенных запятыми целочисленных смещений на основе 1 в этом списке установленных значений, например, "1,3,4"
для строки, значение которой "foo,baz,quux"
. (Этот формат требуется для другого инструмента в системе, над которой я работаю, и по разным практическим причинам я не могу изменить его, чтобы принять что-то другое.) Встроенная функция EXPORT_SET
не совсем отличается, но его возвращаемое значение будет иметь вид "1,0,1,1,..."
, по сути, это набор из 64 элементов, представленный в виде строки.
Есть ли хороший способ SELECT from doc_types
и вернуть значения types
в формате смещения, который я описал выше, в рамках одного запроса SQL?