如何使列别名为整数?

我有这行查询


$sql = " SELECT c.name, IF(a.addressid IS NOT NULL,0,1) AS checked

FROM customers c

LEFT JOIN addresses a 

ON c.customerid = a.customerid

WHERE 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什么?以及如何更改为整数数据类型?


牛魔王的故事
浏览 127回答 3
3回答

UYOU

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

Cats萌萌

使用cast或convert,完整文档。所以它类似于:SELECT c.name, cast(if(a.addressid is not null, 0, 1) as unsigned) as checked

蝴蝶刀刀

我添加了该列的转换函数来表示整数类型。希望这将转化为您想要的结果SELECT c.name, Convert(IF(a.addressid IS NOT NULL,0,1), unsigned integer) AS checkedFROM customers cLEFT JOIN addresses a ON c.customerid = a.customeridWHERE customerid = 123
打开App,查看更多内容
随时随地看视频慕课网APP