私は次のような選択にエイリアスを持っています:
SELECT
CASE ....
WHEN 1 THEN somefield * -10
WHEN 0 THEN somefield * 10
END as myAlias
FROM
....
問題は、mysql がシークする最初のレコードで、「myAlias」を UNSIGNED としてマークしますが、次のレコードで同じエイリアスが SIGNED 整数を生成し、エラーが発生することです。
BIGINT UNSIGNED value is out of range in....
では、「myAlias」がSIGNED INTEGERであることを操作を行う前にmysqlに伝える方法は?
ありがとう!
編集:
私はもう試した
SELECT
CAST(CASE ....
WHEN 1 THEN somefield * -10
WHEN 0 THEN somefield * 10
END AS SIGNED) as myAlias
FROM
....
成功せずに!