var i, b, c = "";
for (i = 0; i < q.length; i++) {
b = q.charAt(i), -1 === e.indexOf(b) || 0 != d ? -1 === a.indexOf(b) || 0 != d ? ("'" == b && 0 == f % 2 && (g += 1), '"' == b && 0 == g % 2 && (f += 1), d = 0 == g % 2 && 0 == f % 2 ? !1 : !0, -1 === a.indexOf(b) || 0 != d ? c += b : ("" != c && h.push([c, i]), h.push([b, i]), c = "")) : ("" != c && h.push([c, i]), h.push([b, i]), c = "", "'" == b && 0 == f % 2 && (g += 1), '"' == b && 0 == g % 2 && (f += 1)) : ("" != c && h.push([c, i]), c = "")
}
console.log(h);
复制
从网上找了一些SQL语句
SHOW DATABASES;
CREATE USER name IDENTIFIED BY 'ssap(":dr ow';
SET PASSWORD FOR name=PASSWORD('fdddfd');
SHOW GRANTS FOR name;
GRANT SELECT ON db_name.* TO name;
SHOW DATABASES;
DELETE FROM tb_name WHERE id=3;
CREATE PROCEDURE pro(
IN num INT,OUT total INT)
BEGIN
SELECT SUM(score) INTO total FROM tb_name WHERE id=num;
END;
DROP PROCEDURE pro;
复制
解析效果如下
[
[ 'SHOW', 4 ],
[ 'DATABASES', 14 ],
[ ';', 14 ],
[ '\nCREATE', 22 ],
[ 'USER', 27 ],
[ 'name', 32 ],
[ 'IDENTIFIED', 43 ],
[ 'BY', 46 ],
[ "'", 47 ],
[ 'ssap(":dr ow', 70 ],
[ "'", 70 ],
[ ';', 71 ],
[ '\nSET', 76 ],
[ 'PASSWORD', 85 ],
[ 'FOR', 89 ],
[ 'name', 94 ],
[ '=', 94 ],
[ 'PASSWORD', 103 ],
[ '(', 103 ],
[ "'", 104 ],
[ 'fdddfd', 111 ],
[ "'", 111 ],
[ ')', 112 ],
[ ';', 113 ],
[ '\nSHOW', 119 ],
[ 'GRANTS', 126 ],
[ 'FOR', 130 ],
[ 'name', 135 ],
[ ';', 135 ],
[ '\nGRANT', 142 ],
[ 'SELECT', 149 ],
[ 'ON', 152 ],
[ 'db_name.*', 162 ],
[ 'TO', 165 ],
[ 'name', 170 ],
[ ';', 170 ],
[ '\nSHOW', 176 ],
[ 'DATABASES', 186 ],
[ ';', 186 ],
[ '\nDELETE', 194 ],
[ 'FROM', 199 ],
[ 'tb_name', 207 ],
[ 'WHERE', 213 ],
[ 'id', 216 ],
[ '=', 216 ],
[ '3', 218 ],
[ ';', 218 ],
[ '\nCREATE', 226 ],
[ 'PROCEDURE', 236 ],
[ 'pro', 240 ],
[ '(', 240 ],
[ '\n\n', 243 ],
[ 'IN', 249 ],
[ 'num', 253 ],
[ 'INT', 257 ],
[ ',', 257 ],
[ 'OUT', 261 ],
[ 'total', 267 ],
[ 'INT', 271 ],
[ ')', 271 ],
[ '\n\n', 274 ],
[ 'BEGIN\n\n', 285 ],
[ 'SELECT', 295 ],
[ 'SUM', 299 ],
[ '(', 299 ],
[ 'score', 305 ],
[ ')', 305 ],
[ 'INTO', 311 ],
[ 'total', 317 ],
[ 'FROM', 322 ],
[ 'tb_name', 330 ],
[ 'WHERE', 336 ],
[ 'id', 339 ],
[ '=', 339 ],
[ 'num', 343 ],
[ ';', 343 ],
[ '\n\n', 346 ],
[ 'END', 353 ],
[ ';', 353 ],
[ '\nDROP', 359 ],
[ 'PROCEDURE', 369 ],
[ 'pro', 373 ],
[ ';', 373 ]
]
复制
文章转载自上下博客,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
2797次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
821次阅读
2025-04-25 15:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
475次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
420次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
369次阅读
2025-04-15 14:48:05
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
269次阅读
2025-04-15 15:27:53
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
262次阅读
2025-04-30 17:37:37
SQL优化 - explain查看SQL执行计划(下)
金同学
246次阅读
2025-05-06 14:40:00
MySQL 8.4 新特性深度解析:功能增强、废弃项与移除项全指南
JiekeXu
221次阅读
2025-04-18 20:21:32
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
216次阅读
2025-04-30 12:17:54