繁体   English   中英

转换varchar值错误时转换失败

[英]Conversion failed when converting the varchar value error

添加内部联接后,我一直收到此错误

SELECT 
   character.dbo.user_character.character_name,
   character.dbo.user_character.wLevel,
   character.dbo.user_character.byPCClass,
   character.dbo.user_character.wMapIndex,
   character.dbo.user_character.wPosX,
   character.dbo.user_character.wPosY,
   ban_info.dbo.account_login.ip
FROM
   character.dbo.user_character
INNER JOIN ban_info.dbo.account_login ON (character.dbo.user_character.wPosY=ban_info.dbo.account_login.ip)
WHERE (character.dbo.user_character.user_no='12100601280065')

错误

消息245,级别16,状态1,行1将varchar值'127.0.0.1'转换为数据类型int时转换失败。

我该如何解决?

看看这个; http://daipratt.co.uk/mysql-store-ip-address/ 需要进行一些调整才能存储IP地址。

您的问题只是将存储在ban_info.dbo.account_login.ip上的IP地址(不是整数)与存储在以下行中character.dbo.user_character.wPosY上的整数值进行比较:

INNER JOIN ban_info.dbo.account_login ON (character.dbo.user_character.wPosY = ban_info.dbo.account_login.ip)

我认为您应该将IP地址转换为php(或db)中的int,然后进行比较。 PHP中有函数ip2long()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM