【问题标题】:Do not retrieve correct hexa decimal value from MySql stored procedure不要从 MySql 存储过程中检索正确的十六进制值
【发布时间】:2017-07-10 06:15:48
【问题描述】:

我正在尝试使用以下过程为 sp1 表添加值。 但它不会检索正确的十六进制值。

create table sp1(
id varchar(10),
txt varchar(10)
);


create procedure sp_ins1(p varchar(10))
BEGIN
set @x = char_length(p);
set @y = binary(p);
insert into sp1(id,txt)
    values(@x,@y);
END;

通过调用以下函数将值添加到表中。

call sp_ins1(4);
call sp_ins1(13);
call sp_ins1(45);

select * from sp1\g

这是结果

+------+----------+
| id   | txt      |
+------+----------+
| 1    | 34       |
| 2    | 3133     |
| 2    | 3435     |
| 4    | 36373537 |
| 1    | 31       |
+------+----------+

这是什么原因?

【问题讨论】:

    标签: mysql stored-procedures hex


    【解决方案1】:

    不明白问题所在。另外sp_ins7 != sp_ins1

    试试:

    mysql> SELECT
        ->   CHAR_LENGTH('4') `id`,
        ->   BINARY('4') `txt_BIN`,
        ->   HEX('4') `txt_HEX`
        -> UNION
        -> SELECT
        ->   CHAR_LENGTH('13') `id`,
        ->   BINARY('13') `txt_BIN`,
        ->   HEX('13') `txt_HEX`
        -> UNION
        -> SELECT
        ->   CHAR_LENGTH('45') `id`,
        ->   BINARY('45') `txt_BIN`,
        ->   HEX('45') `txt_HEX`
        -> UNION
        -> SELECT
        ->   CHAR_LENGTH('6757') `id`,
        ->   BINARY('6757') `txt_BIN`,
        ->   HEX('6757') `txt_HEX`
        -> UNION
        -> SELECT
        ->   CHAR_LENGTH('1') `id`,
        ->   BINARY('1') `txt_BIN`,
        ->   HEX('1') `txt_HEX`;
    +----+---------+----------+
    | id | txt_BIN | txt_HEX  |
    +----+---------+----------+
    |  1 | 4       | 34       |
    |  2 | 13      | 3133     |
    |  2 | 45      | 3435     |
    |  4 | 6757    | 36373537 |
    |  1 | 1       | 31       |
    +----+---------+----------+
    5 rows in set (0.00 sec)
    

    12.5 String Functions::HEX

    【讨论】:

    • 糟糕!它应该是 sp_ins1。这是一个错误。但结果是正确的。问题是为什么在每个十六进制值之前都加上 3?
    猜你喜欢
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 2022-10-01
    • 2016-06-10
    • 1970-01-01
    • 2022-01-02
    • 2020-05-16
    相关资源
    最近更新 更多