MariaDB中提取uniqueId数值计算communityId并导出的SQL问题
修正后的SQL语句及说明
问题分析
你当前的SQL尝试使用固定位置截取字符串,这种方式易因字符串长度变化失效,且未正确提取到18893661数值,导致CAST后得到0,最终结果仅为固定值76561197960265728。
正确SQL语句
SELECT uniqueId, CAST(TRIM(TRAILING ']' FROM SUBSTRING_INDEX(uniqueId, ':', -1)) AS UNSIGNED) + 76561197960265728 AS communityId FROM hlstats_PlayerUniqueIds WHERE playerId = 562;
语句解释
SUBSTRING_INDEX(uniqueId, ':', -1): 提取uniqueId中最后一个:之后的部分,得到18893661]TRIM(TRAILING ']' FROM ...): 移除末尾的],得到纯数字字符串18893661CAST(...) AS UNSIGNED: 将字符串转为无符号整数- 加上固定值: 与
76561197960265728相加得到正确的communityId
预期输出
+----------------+-------------------+ | uniqueId | communityId | +----------------+-------------------+ | [U:1:18893661] | 76561197979159389 | +----------------+-------------------+ 1 row in set (0.00 sec)
内容的提问来源于stack exchange,提问作者Double
相关产品推荐
相关产品推荐

