SQL插入使用RAND()插入随机值 - INSERT到TINYINT?

时间:2016-07-25 09:03:45

标签: mysql sql database

我有一个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 }); }); }); 输入随机值?

2 个答案:

答案 0 :(得分:3)

INSERT INTO table (`col1`, `col2`)
VALUES
    (NULL, FLOOR(1 + RAND( )*5));

答案 1 :(得分:0)

Function FLOOR()已经返回一个数字:

  

对于精确值数值参数,返回值具有精确值数值类型。对于字符串或浮点参数,返回值具有浮点类型。

...所以你不需要把它投射到任何其他类型。但是,如果您这样做,则不要选择CHAR作为目标类型。