为了账号安全,请及时绑定邮箱和手机立即绑定

如何使列别名为整数?

如何使列别名为整数?

PHP
牛魔王的故事 2021-11-05 20:05:00
我有这行查询$sql = " SELECT c.name, IF(a.addressid IS NOT NULL,0,1) AS checkedFROM customers cLEFT JOIN addresses a ON c.customerid = a.customeridWHERE customerid = 123 ";$array     = array();$GetResult = $Obj->FetchData($sql, $Obj->DEFAULT_PDO_CONNECTIONS);while ($row = $GetResult->fetch()) {    $array[] = $row;}header("Content-type: application/json");$result = json_encode($array);echo $result;当我以 JSON 格式回显时,它将我的checked输出显示为字符串。我想知道默认情况下 alias 的数据类型是checked什么?以及如何更改为整数数据类型?
查看完整描述

3 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

感谢您的回答,是的,默认情况下它已经在数据类型编号中,json格式问题。它产生 my checkedas 字符串。所以我在这里找到了答案PHP json_encode encoding numbers as strings

$result = json_encode($array, JSON_NUMERIC_CHECK);


查看完整回答
反对 回复 2021-11-05
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

使用castconvert,完整文档

所以它类似于:

SELECT c.name, cast(if(a.addressid is not null, 0, 1) as unsigned) as checked


查看完整回答
反对 回复 2021-11-05
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我添加了该列的转换函数来表示整数类型。希望这将转化为您想要的结果


SELECT c.name, Convert(IF(a.addressid IS NOT NULL,0,1), unsigned integer) AS checked

FROM customers c

LEFT JOIN addresses a 

ON c.customerid = a.customerid

WHERE customerid = 123


查看完整回答
反对 回复 2021-11-05
  • 3 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信