首页 > 解决方案 > 如果在参数中使用字符串列表(每个字符串项中有调用函数),如何编写 XML MyBatis 查询?

问题描述

我正在使用 MariaDB 10.x、MyBatis、Spring Boot 2.x、Java 8。我需要写查询。

我有 2 个功能:

function UuidFromBin

RETURN LCASE(CONCAT_WS('-',
    HEX(SUBSTR(_bin, 5, 4)),
    HEX(SUBSTR(_bin, 3, 2)),
    HEX(SUBSTR(_bin, 1, 2)),
    HEX(SUBSTR(_bin, 9, 2)),
    HEX(SUBSTR(_bin, 11))
)
function uuidToBin

RETURN UNHEX(CONCAT(
    SUBSTR(_uuid, 15, 4),
    SUBSTR(_uuid, 10, 4),
    SUBSTR(_uuid, 1, 8),
    SUBSTR(_uuid, 20, 4),
    SUBSTR(_uuid, 25)
)

字段的数据类型po.id并且po.shop_id是二进制的。

List<String> list1 = Arrays.asList("8766103-c1e7-4189-940b-3aeeeef041db", "00000000-0000-3100--0000-00000000");
List<String> list2 = Arrays.asList("00000000-0000-3100--0000-00000000" , "00000000-0000-3100--0000-00000002");
SELECT DISTINCT
    UuidFromBin(po.shop_id) AS shop_id,
    po.name
    po.state
FROM product_offering po
WHERE po.id IN (UuidToBin('8766103-c1e7-4189-940b-3aeeeef041db'), UuidToBin('00000000-0000-3100--0000-00000000')) -- list1
AND po.shop_id IN (UuidToBin('00000000-0000-3100--0000-00000000'), UuidToBin('00000000-0000-3100--0000-00000002')) -- list2

如果在参数中使用字符串列表,如何编写 XML MyBatis 查询?

附加信息:我看到https://stackoverflow.com/a/44022017/3728901,我很难调用UuidToBin每个字符串列表的项目。

标签: javamariadbmybatis

解决方案


推荐阅读