背景
项目中有两个表需要union查询返回数据给前端,两个表的ID可能会有相同的,后续对数据处理时难以区分。处理方案为对其中一张表的id处理成负数,便于区分,直接用0减去id得到。实际应用中发现报错BIGINT UNSIGNED value is out of range in '(0 - t
.id
)
解决方案
经多方查验,最终采取这位大佬的方案。
把其中的id 字段强转为SIGNED类型。
SELECT
(0-CAST(id AS SIGNED))
FROM table t;