I am use MariaDB 10.x , MyBatis, Spring Boot 2.x , Java 8 . I need write query.
I have 2 functions:
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)
)
datatype of field po.id
and po.shop_id
are binary.
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
How to write XML MyBatis query in case using list of strings in parameters?
Addition information: I see https://stackoverflow.com/a/44022017/3728901 , I have difficult with call UuidToBin
in per item of String list.