可能是一个奇怪的组合,但我有一个查询包括:
SELECT IFNULL(`active`.`num`, `generic`.`num`) AS `num` ...
`active`
和`generic`
都是此查询中同一个表的别名,但`active`
根据用户选择加入`num`
来选择,而`generic`
1}}是一个任意的(通常是第一个,因为这就是GROUP BY
的工作方式)如果没有选择特定的那个将会显示。
无论如何,`num`
是SMALLINT(3) UNSIGNED ZEROFILL
列,但在输出中ZEROFILL
丢失 - 无论是否满足IFNULL
条件,都会发生这种情况。< / p>
这可能是MySQL中的一个错误,但我该怎么做呢?
答案 0 :(得分:1)
是否可以选择添加 LPAD ?
SELECT LPAD(IFNULL(`active`.`num`, `generic`.`num`), 3, '0') AS `num` ...