Mysql:在json列上的类似表达式中的连字符

时间:2016-06-15 07:27:58

标签: mysql json sql-like

我正在处理Hibernate查询,该查询获取记录列表并计入2个单独的查询。此查询还具有传递SEARCH STRING以根据给定搜索条件过滤数据的功能。

现在我遇到了一个问题,我试图在JSON列上搜索这个给定的输入。  当我尝试搜索任何只包含字母表的正常字符串时,一切正常,例如' Project ABC'。但是,当我在搜索字符串中引入连字符( - )时,MySQL会返回给定HQL查询的空结果。对于具有作为TEXT存储在其中的JSON值的列,会出现此问题。示例查询如下:

select *
from SERVICE_PROVIDER_TRACKER servicepro0_
where  (servicepro0_.requestParams like '%ProjectName:"%Order Lo-%"%'  or
        servicepro0_.REQUESTER_ID like '%Order Lo-%' or
        servicepro0_.PROVIDER_SALES_ORDER like '%Order Lo-%')
order by servicepro0_.REQUESTED_ON desc;

在上面的示例查询中, requestParams 是JSON列。即使我从条件中删除该列,我仍然无法获得任何数据。

我尝试使用 ESCAPE IN ,如以及 REGEXP

有人可以帮帮我吗?

更新:以下是JSON示例:

{
.............
NotifyEmailWhenResponseReceivedForBoq: "N",
termsConditions: "Y",
Currency: "1",
ProjectName: "Order-88",
BoMNameCreation: "Use Provider's BoM name",
............................
providerId: "com.yagna.common.domain.Orgnization:604"

}

0 个答案:

没有答案