我有一个MySQL插件,我使用RAND
生成一个随机INT
值,问题是它不会插入数据库,因为列接受TINYINT
,我该如何转换输出到TINYINT
。代码示例下面:
INSERT INTO table (`col`, `col` VALUES (NULL, CAST(FLOOR(5+RAND()*(1-5)) AS CHAR);
所以我想随机插入1到5之间的数字,但是,因为该列设置为TINYINT
而不是INT
我得到1592不安全语句。并且DB将col设置为其默认值1。
如何使用RAND
INSERT INTO
TINYINT
col来使用 User.findOne({ email: req.body.email }, function(err, user) {
if (user) {
return res.status(400).json([{ msg: 'The email address you have entered is already associated with another account.' }]);
}
user = new User({
name: req.body.name,
email: req.body.email,
password: req.body.password,
mobile: req.body.mobile
});
user.save(function(err) {
res.json({ token: generateToken(user), user: user });
});
});
输入随机值?
答案 0 :(得分:3)
INSERT INTO table (`col1`, `col2`)
VALUES
(NULL, FLOOR(1 + RAND( )*5));
答案 1 :(得分:0)
Function FLOOR()
已经返回一个数字:
对于精确值数值参数,返回值具有精确值数值类型。对于字符串或浮点参数,返回值具有浮点类型。
...所以你不需要把它投射到任何其他类型。但是,如果您这样做,则不要选择CHAR
作为目标类型。