首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: ER_DATA_TOO_LONG:数据太长,无法在第1行的列“数据”

错误: ER_DATA_TOO_LONG:数据太长,无法在第1行的列“数据”
EN

Stack Overflow用户
提问于 2018-05-09 01:34:23
回答 2查看 6.6K关注 0票数 1

下面有一个很长的select语句,当我运行它时,我在我的Node服务器上收到的错误数据太长了,但是当我将它复制到MySQL工作台时,它工作得很好。如何解决此问题?

代码语言:javascript
复制
SELECT `199_roster`.`first`, `199_roster`.`last`, `199_roster`.`gender`, `199_roster`.`grade`, `199_results`.`ath_id`, `199_results`.`place`, `199_results`.`date`, `199_results`.`comment`, `199_results`.`100m Hurdles (F)`, `199_results`.`110m Hurdles (M)`, `199_results`.`100m Dash (F)`, `199_results`.`100m Dash (M)`, `199_results`.`1600m Run (F)`, `199_results`.`1600m Run (M)`, `199_results`.`4x100m Relay (F)`, `199_results`.`4x100m Relay (M)`, `199_results`.`400m Dash (F)`, `199_results`.`400m Dash (M)`, `199_results`.`200m Hurdles (F)`, `199_results`.`200m Hurdles (M)`, `199_results`.`800m Run (F)`, `199_results`.`800m Run (M)`, `199_results`.`200m Dash (F)`, `199_results`.`200m Dash (M)`, `199_results`.`4x400m Relay (F)`, `199_results`.`4x400m Relay (M)`, `199_results`.`High Jump (F)`, `199_results`.`High Jump (M)`, `199_results`.`Long Jump (F)`, `199_results`.`Long Jump (M)`, `199_results`.`Shot Put (F)`, `199_results`.`Shot Put (M)`, `199_results`.`Discus (F)`, `199_results`.`Discus (M)`, `199_results`.`Pole Vault (F)`, `199_results`.`Pole Vault (M)`, `199_results`.`3200m Run (M)`, `199_results`.`3200m Run (F)`, `199_results`.`300m Hurdles (M)`, `199_results`.`300m Hurdles (F)`, `199_results`.`4x800m Relay (M)`, `199_results`.`4x800m Relay (F)`, `199_results`.`100m Hurd. Trial (F)`, `199_results`.`110m Hurd. Trial (M)`, `199_results`.`100m Dash Trial (F)`, `199_results`.`100m Dash Trial (M)`, `199_results`.`200m Dash Trial (F)`, `199_results`.`200m Dash Trial (M)`, `199_results`.`400m Hurdles (F)`, `199_results`.`400m Hurdles (M)`, `199_results`.`2000m Steeplechase (F)`, `199_results`.`2000m Steeplechase (M)`, `199_results`.`3000m Steeplechase (F)`, `199_results`.`3000m Steeplechase (M)`, `199_results`.`1500m Run (F)`, `199_results`.`1500m Run (M)`, `199_results`.`3000m Run (F)`, `199_results`.`3000m Run (M)`, `199_results`.`5000m Run (F)`, `199_results`.`5000m Run (M)`, `199_results`.`10000m Run (F)`, `199_results`.`10000m Run (M)`, `199_results`.`Triple Jump (F)`, `199_results`.`Triple Jump (M)`, `199_results`.`Hammer Throw (F)`, `199_results`.`Hammer Throw (M)`, `199_results`.`Javelin Throw (F)`, `199_results`.`Javelin Throw (M)`, `199_results`.`Distance Medley Relay (F)`, `199_results`.`Distance Medley Relay (M)`, `199_results`.`Sprint Medley Relay (F)`, `199_results`.`Sprint Medley Relay (M)`, `199_results`.`4x200m Relay (F)`, `199_results`.`4x200m Relay (M)`, `199_results`.`4x1500m Relay (F)`, `199_results`.`4x1500m Relay (M)`, `199_results`.`4x1600m Relay (F)`, `199_results`.`4x1600m Relay (M)`, `199_results`.`Shuttle Hurdle Relay (F)`, `199_results`.`Shuttle Hurdle Relay (M)`, `199_results`.`60m Dash Trial (F)`, `199_results`.`60m Dash Trial (M)`, `199_results`.`60m Dash (F)`, `199_results`.`60m Dash (M)`, `199_results`.`60m Hurd. Trial (F)`, `199_results`.`60m Hurd. Trial (M)`, `199_results`.`60m Hurdles (F)`, `199_results`.`60m Hurdles (M)`, `199_results`.`50m Dash Trial (F)`, `199_results`.`50m Dash Trial (M)`, `199_results`.`50m Dash (F)`, `199_results`.`50m Dash (M)`, `199_results`.`50m Hurd. Trial (F)`, `199_results`.`50m Hurd. Trial (M)`, `199_results`.`50m Hurdles (F)`, `199_results`.`50m Hurdles (M)`, `199_results`.`55m Dash Trial (F)`, `199_results`.`55m Dash Trial (M)`, `199_results`.`55m Dash (F)`, `199_results`.`55m Dash (M)`, `199_results`.`55m Hurd. Trial (F)`, `199_results`.`55m Hurd. Trial (M)`, `199_results`.`55m Hurdles (F)`, `199_results`.`55m Hurdles (M)`, `199_results`.`100y Dash (F)`, `199_results`.`100y Dash (M)`, `199_results`.`Mile Run (F)`, `199_results`.`Mile Run (M)` FROM `199_results` INNER JOIN `199_roster` ON `199_roster`.`ath_id` = `199_results`.`ath_id` WHERE `199_results`.`date` BETWEEN '2018-04-01 00:00:01' AND '2018-05-08 23:59:59';

下面是我的.js文件中进行查询的部分。(通常,我在客户端创建查询并动态发送,但为了调试,我将变量设置为如下所示)

代码语言:javascript
复制
var fullQuery = "SELECT * FROM  `199_results` INNER JOIN `199_roster` ON `199_roster`.`ath_id` = `199_results`.`ath_id` WHERE `199_results`.`date` BETWEEN '2018-04-01 00:00:01' AND '2018-05-08 23:59:59';"

    const db = require("../db"); 
    db.query(fullQuery, (err, rows, fields) => {
        if (err) { 
            res.render("results", { 
                title: "Results",
                mysqlError: err.message
                })
            return console.error('stupid error', err)
        } else {
            req.session.results = rows;
            res.send(rows)
        }
    })      

下面是错误消息中的更多内容,如果它有帮助的话:

错误: ER_DATA_TOO_LONG:数据太长,列“Query.Sequence._packetToError”第1行(/root/site/node_Query.Sequence._packetToError/mysql/lib/protocol/Sequence.js:52:14)位于Query.ErrorPacket uery.js:77:18(/root/site/node_Query.Sequence._packetToError/mysql/lib/protocol/Protoco ( (/root/site/node_modules/mysql/lib/protocol/Parser.js:76:12) at Protocol.write (/root/site/node_modules/mysql/lib/protocol/Protocol.js:39 :16)的Parser.write l.js:279:23)。(/root/site/node_modules/mysql/lib/Connection.js:103:2 8)在emitOne (events.js:116:13)、Socket.emit (events.js:211:7)、addChunk (_stream_readable.js:263:12)、readableAddChunk (_stream_readable.js:250:11)(/root/site/node_modules/mysql/lib/Pool.js:199:23) at MySQLStore.set (/root/site/node_modules/express-mysql-session/index.js:19 9:19) Session.save (/root/site/node_modules/express-session/session/session.js: 72:25) Session.save (/root/site/node_modules/express-session/index.js:381:15)在(/root/site/node_modules/express-session/index.js:330: 21)在ServerResponse.send (/root/site/node_modules/express/lib/response.js:221: 10)在ServerResponse.json (/root/site/node_modules/express/lib/response.js:267: 15)在ServerResponse.send (/root/site/21:158: 21) (在(/root/site/node_modules/mysql/lib/protocol/sequences/ Query.db.query callback at Query.Sequence.end Sequence.js:88:24)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-11 02:36:37

这个问题似乎是一个节点异步问题(我应该更早地意识到这一点)。

通过评论

代码语言:javascript
复制
else {
        //req.session.results = rows;
        res.send(rows)
}

现在一切都很完美,没有错误,一切都显示正确。michael-sqlbot认为这不是查询错误是正确的,如果我有足够的代表这样做的话,我会投票的。

票数 1
EN

Stack Overflow用户

发布于 2018-05-09 01:39:58

既然你正在检索这么多数据,你能不能

代码语言:javascript
复制
SELECT * FROM   FROM `199_results` INNER JOIN `199_roster` ON 
`199_roster`.`ath_id` = `199_results`.`ath_id` WHERE `199_results`.`date` 
BETWEEN '2018-04-01 00:00:01' AND '2018-05-08 23:59:59';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50244306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档