我有一个名为pr_collaborator
的下表:
--------------------------------
id | name | last_name |
--------------------------------
000015| John | Smith |
002154| Maria | Sanchez |
123456| Fabian | Sierra |
SE0012| Sarah | Taylor |
SE0015| Conny | Huertas |
--------------------------------
我刚刚进行了以下查询:
SELECT * FROM pr_collaborator;
这是结果:
--------------------------------
id | name | last_name |
--------------------------------
15 | John | Smith |
2154| Maria | Sanchez |
123456| Fabian | Sierra |
SE0012| Sarah | Taylor |
SE0015| Conny | Huertas |
--------------------------------
我想保留前导零,id
字段为VARCHAR(10)
我正在尝试以下操作,但不起作用;
SELECT CAST(id as CHAR) AS id, name, last_name FROM pr_collaborator;
SELECT CONVERT(id, VARCHAR) AS id, name, last_name FROM pr_collaborator;
我不想使用LPAD
函数,因为我不知道有多少字符具有值。
更新
这是pr_collaborator
结构:
CREATE TABLE `pr_collaborator` (
`id` varchar(10) COLLATE utf8_spanish_ci NOT NULL,
`name` varchar(80) CHARACTER SET latin1 NOT NULL,
`last_name` varchar(80) CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci
这是PHP代码中的查询:
$sql = "SELECT id, name, last_name FROM pr_collaborator";
$result = $this->db->fetchAll($sql, Phalcon\DB::FETCH_ASSOC);
$this->jsonReturnSuccess($result);
也许PHP可能有问题,而MySQL没有问题
希望你能帮助我!
答案 0 :(得分:0)
我无法复制此发现:
INSERT INTO my_table VALUES (8,NOW(),'00010102');
Query OK, 1 row affected (0.03 sec)
SELECT status FROM my_table WHERE uuid = 8;
+----------+
| status |
+----------+
| 00010102 |
+----------+
答案 1 :(得分:0)
我不知道这是否是一个好答案,但是我必须这样做:
我不得不使用QUOTE()
函数在列值中加上引号,因为PHP成为整数形式的值:
$sql = "SELECT QUOTE(id) AS id, name, last_name FROM pr_collaborator";
$result = $this->db->fetchAll($sql, Phalcon\DB::FETCH_ASSOC);
$this->jsonReturnSuccess($result);
如您所见,由于引号,我可以在查询结果中保留前导零。
array(
'id' : '000015',
'name': 'Jhon',
'last_name': 'Smith'
),
array(
'id' : '002154',
'name': 'Maria',
'last_name': 'Sanchez'
),
array(
'id' : '123456',
'name': 'Fabian',
'last_name': 'Sierra'
),
array(
'id' : 'SE0012',
'name': 'Sarah',
'last_name': 'Taylor'
),
array(
'id' : 'SE0015',
'name': 'Conny',
'last_name': 'Huertas'
)