如何从SQL中将数据选择为INT而不是String?

时间:2018-06-30 11:42:38

标签: php mysql

我有此代码:

$TargetPlayerPosition = $GLOBALS['DATABASE']->uniquequery("SELECT total_rank FROM ".STATPOINTS." WHERE `id_owner` = '". $this->_fleet['fleet_target_owner'] ."';");

问题在于我不能在$TargetPlayerPosition上加上+10,因为它是字符串。但是在数据库中,total_rank是一个INT。

2 个答案:

答案 0 :(得分:0)

<?php 
$TargetPlayerPosition = $GLOBALS['DATABASE']->uniquequery("SELECT total_rank FROM ".STATPOINTS." WHERE `id_owner` = '". $this->_fleet['fleet_target_owner'] ."';");
/* conversion to int */
$rank = (int) $TargetPlayerPosition;
/* do the required arithmetic */
/* $rank + 10 will work now */
?>

答案 1 :(得分:0)

不确定查询后如何从结果集中检索值。 通常,您应该从数据库中为整数的字段中获取整数类型值。 如果没有,则可以将值转换为php。

 $v = (int)$v;
 // Or.
 $v = intval($v);

您可以使用以下查询在查询时动态添加数字:

"SELECT (total_rank+10) AS total_rank FROM ".STATPOINTS." WHERE ..."

即使该字段是字符串类型,也可以执行以下操作:

"SELECT (CONVERT(total_rank, SIGNED INTEGER)+10) AS total_rank FROM ".STATPOINTS." WHERE ..."