sql получаю ошибку с оператором '- >>' - PullRequest
0 голосов
/ 10 мая 2018
    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, чтобы узнать правильный синтаксис для использования рядом с '>' $. "Идентификатор актива" '

EDIT Вот версия MySql:

enter image description here

1 Ответ

0 голосов
/ 18 июля 2018

Может быть, ваш 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
;
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...