apply拼接SQL
apply方法将‘sensorID’替换‘{0}’,替换后sql语句如下:
select * from table where json_contains(sensor_data, json_object('sensorId', 'sensorID'))
MySQL查询json数组的某个属性值
mysql5.7版本后支持json字段的检索查询
- 使用字段->'$.json属性'进行查询条件
- 使用json_extract函数查询,json_extract(字段, '$.json属性')
- 根据json数组查询,json_contains(字段, json_object('json属性', '参数值'))
[{"id": 2, "sensorId": "00002000112444000001"},
{"id": 1, "sensorId": "00002000112474000001"}]
1.?使用字段->'$.json属性'进行查询条件
select * from eq_monitor where sensor_data -> '$.sensorId' = '00002000112474000001';
2.?使用json_extract函数查询
select * from eq_monitor where json_extract(sensor_data, '$.sensorId') = '00002000112474000001';
3.?根据json数组查询
select * from eq_monitor where json_contains(sensor_data, json_object('sensorId', '00002000112474000001'))
?
apply方法定义
default Children apply(String applySql, Object... value) {
return this.apply(true, applySql, value);
}
Children apply(boolean condition, String applySql, Object... value);
参数说明:
- condition:用于指定当前这个条件是否有效;如果为 true,则应用当前条件;如果为 false,则忽略当前条件。
- applySql:要拼接的 SQL 语句,使用占位符 {0}、{1}...{n} 等用来替换参数。
- params:参数列表,用于替换 applySql SQL 语句中的 {0}、{1}…{n} 等。
|