<select id="selectOneById" resultMap="BaseResultMap"> SELECT slor_no, triggered_count, item_count, info_count, began_at, ended_at, duration, device_label, purpose, merge_record_no, remarks, operator, -- operator_user_id, region_id, created_at, created_by, updated_at, updated_by FROM erp_warehouses_slor WHERE slor_no = #{recordNo} LIMIT 1; </select>,merge_record_no是JSON字符串数组类似["202301632", "202301631"],但是查找出来为null,帮我改为正确写法
时间: 2024-02-20 17:01:58 浏览: 244
MyBatis学习-映射文件标签篇(select、resultMap).rar_alikeett_blueaod_mybatis
如果 `merge_record_no` 是一个 JSON 格式的字符串数组,那么可以使用 MySQL 的 `JSON_EXTRACT()` 函数来提取其中的值。修改 SQL 语句如下:
```
SELECT slor_no,
triggered_count,
item_count,
info_count,
began_at,
ended_at,
duration,
device_label,
purpose,
JSON_EXTRACT(merge_record_no, '$[0]') AS merge_record_no_1,
JSON_EXTRACT(merge_record_no, '$[1]') AS merge_record_no_2,
remarks,
operator,
region_id,
created_at,
created_by,
updated_at,
updated_by
FROM erp_warehouses_slor
WHERE slor_no = #{recordNo}
LIMIT 1;
```
上面的 SQL 语句中,使用 `JSON_EXTRACT()` 函数来提取 `merge_record_no` 字段中的第一个和第二个元素,分别表示为 `merge_record_no_1` 和 `merge_record_no_2`。如果你的 JSON 数组中的元素个数可能会更多,那么可以继续增加类似 `$[2]`、`$[3]` 的语句来提取更多的元素。
阅读全文