mysql - sql '->>' 运算符出错

标签 mysql sql phpmyadmin

    CREATE PROCEDURE `getAssetDetailsforPDF`(
) BEGIN
Select
    class.Name as AssetName,
    getOperatingZoneName(
        ifnull(getoperatingzone(class.ID), 0)
    ) as OperatingZone,
    getTimetoFailure(
        class.ID
    ) as TagValue,
    class1.Name as LineName,
    details.Defintion - > > '$."Asset ID"' as definition
from
    asset_classification class
    left join
        asset_classification class1
    on  class1.ParentId = 2
    left join
        asset_details details
    on  details.Id in(
            select
                class.ID
        )
Where
    class.MCT_typeId = 5
and class.ParentId in(
        Select
            class1.ID
    )
group by
    class.Id
;
END
;
;

我有这个 sql 查询,但在将 sql 文件导入 phpmyadmin 数据库时出现错误。

您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 '>'$."Asset ID"' 附近使用的正确语法

编辑 这是 MySql 的版本:

enter image description here

最佳答案

可能是你的 MySQL 不支持 "->>'$..."这样的运算符。您可以像这样使用 MySQL 的 json_extract() 函数代替它:

    CREATE PROCEDURE `getAssetDetailsforPDF`(
) BEGIN
Select
    class.Name as AssetName,
    getOperatingZoneName(
        ifnull(getoperatingzone(class.ID), 0)
    ) as OperatingZone,
    getTimetoFailure(
        class.ID
    ) as TagValue,
    class1.Name as LineName,
json_extract(details.Defintion,'$."Asset ID"') as definition

from
    asset_classification class
    left join
        asset_classification class1
    on  class1.ParentId = 2
    left join
        asset_details details
    on  details.Id in(
            select
                class.ID
        )
Where
    class.MCT_typeId = 5
and class.ParentId in(
        Select
            class1.ID
    )
group by
    class.Id
;
END
;
;

关于mysql - sql '->>' 运算符出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50271593/

相关文章:

php - 已经存在的数据查询和绕过php mysql中的新条目

mysql:简单的子查询非常慢,因为有 3000 万行

sql - VBA 错误 3134 INSERT INTO 语句中的语法错误

SQL更新查询

MySQL:定义多个表的唯一性

mysql - 为什么 ALL 关键字在此查询中不起作用?

python - 通过Python在sql中联合两个以上的表。

mysql - 如何解决 "#2006 - MySQL server has gone away"和 "ERROR 2013 (HY000): Lost connection to MySQL server during query"

mysql - SQL GROUP CONCAT 和 LEFT JOIN 仅从数据库返回一个结果

SQL 字符串中的 MySql 更新错误