如何解决通过JSON列的键联接在MySQL 5.6中给出错误但在MySQL 8.0.19中工作
我当前的代码是
$query->leftJoin('templates as t','t.id','=',DB::Raw("CAST(revisions.value->'$.template_id' AS UNSIGNED)"));
在这种情况下,值是修订表中的JSON列。
它在MySQL 8.0.19中可以正常工作,但会引发错误
“您的SQL语法有误;请查看与MySQL服务器版本相对应的手册,以获取在MySQL 5.6中'>“ $。template_id” AS UNSIGNED)左联接附近使用的正确语法
解决方法
仅在mysql v5.7.8中添加了对Json的支持,因此v5.6不支持json运算符。列路径运算符(->)为added in v5.7.9。您需要至少迁移到v5.7.9,此代码才能在mysql中工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。