Если вы согласны с наличием столбца на предупреждение, вы также можете использовать export_set () и substring () для разбивки битов.
Я предполагаю, что вы используете 4 бита.
bit 1 = "fatal"
bit 2 = "warning"
bit 3 = "error"
bit 4 = "user error"
SELECT
name,
EXPORT_SET(warning,1,0,'',4) AS debugBits,
SUBSTRING(EXPORT_SET(warning,1,0,'',4),1,1) AS hasFatal,
SUBSTRING(EXPORT_SET(warning,1,0,'',4),2,1) AS hasWarning,
SUBSTRING(EXPORT_SET(warning,1,0,'',4),3,1) AS hasError,
SUBSTRING(EXPORT_SET(warning,1,0,'',4),4,1) AS hasUserError
FROM warnings;
который должен вывести что-то вроде:
------|----------|---------|-----------|---------|-------------|
name |debugBits | hasFatal| hasWarning| hasError| hasUserError|
alex | 0000| 0| 0| 0| 0|
mike | 1010| 1| 0| 1| 0|
sarah | 0010| 0| 0| 1| 0|
------|----------|---------|-----------|---------|-------------|
Обратите внимание, что export_set () отображает бит 1 в крайнем левом углу.
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_export-set
Если вы согласны с колонкой CSV для предупреждений, вы можете использовать make_set ()
SELECT
name,
MAKE_SET(warning,
'fatal',
'warning',
'error',
'userError') AS warningText
FROM warnings
, который даст вам один столбец для предупреждений со списком установленных битовых меток CSV.
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_make-set