【发布时间】:2021-10-07 18:15:49
【问题描述】:
我在一个 MySQL 表中有这个列,它有一个 JSON 字符串,我正在尝试使用正则表达式提取记录。 例如,“paylod”列(数据类型长文本)保存此值
{
"type":"assignment",
"location":"12345"
}
我正在使用 RLIKE 根据位置获取记录。
select * from table where payload RLIKE '"location":"[[:<:]]12345[[:>:]]"';
在 java 中使用此查询时,我使用的是准备好的语句。
String pattern = "\"location\":\"[[:<:]]12345[[:>:]]\""
当我使用preparedStatement.setString(payload, pattern) 时,我没有得到任何结果。但是当我在工作台中执行查询时,我看到了获取的行。
我猜是因为我使用的是 setString,它是用双引号括起来的模式,而 MySQL 无法解析它。
那么有前进的道路吗?我的要求是根据 JSOn 有效载荷列中的键值对获取记录。
【问题讨论】:
标签: java mysql sql jdbc prepared-statement