MySQL-插入前用单引号引起来的预计算变量

时间:2018-11-07 16:27:10

标签: mysql sql

表的主键是固定长度11的字符。

我已经预先计算了脚本中的密钥,就像这样:

SET pes = LPAD(person_number, 11, '0');

现在,我的变量符合我的标准。只需将其添加到数据库中。

INSERT INTO db VALUES(pes, ...);

这是我出现问题的地方-由于主键应该是char,因此我需要将变量的值放在单引号中。

但是,我不知道该怎么做。 我试图逃脱它们,但是

'\''pes'\''

不起作用。

有没有简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以尝试通过concat函数使用多单引号。

INSERT INTO db VALUES(concat('''', @pes,''''), ...);

这是一个样本

模式(MySQL v5.7)

CREATE TABLE T(col varchar(50));

SET @pes = '1234';                


INSERT INTO T VALUES (concat('''', @pes,''''));

查询#1

select col
FROM T;

| col    |
| ------ |
| '1234' |

View on DB Fiddle

答案 1 :(得分:0)

这应该没问题!

mySql varchar数据类型应接受数字!

CREATE TABLE USERS (USER_ID VARCHAR(255) NOT NULL UNIQUE PRIMARY KEY,
                    USER_NAME VARCHAR(255));
SET @U_ID = LPAD(2018, 11, '0');
INSERT INTO USERS VALUES (@U_ID, 'USER_1'),(2, 'USER_2');

SELECT * FROM USERS;

将输出:

USER_ID      |  USER_NAME
-------------------------
00000002018  |  USER_1
2            |  USER_2

这是有效的fiddle