我正在为MySQL中的JSON数组寻找类似shopt -s nullglob
x="a/b/c/d"
IFS=/ read -a x <<< "$x"
# x is now an array in the form (a b c d)
result=(*"${x[0]}"*)
for c in "${x[@]:1}"
do
newresult=()
for r in "${result[@]}"
do
match=("$r"/*"$c"*)
[ "${#match[@]}" -gt 0 ] && \
newresult=("${newresult[@]}" "${match[@]}")
done
result=("${newresult[@]}")
done
echo "${result[@]}"
的内容。
MySQL JSON data type中的经理ID如下:forEach
,我想对列表中的每个项目执行操作。
一个天真的解决方案是使用从0开始的计数器执行WHILE循环,并在VAR_MANAGER_ID为空时结束。以下是WHILE循环内部外观的设计示例:
[1, 2, 3, 4, 5]
但必须有更好的方法!我该怎么做:
SET VAR_PATH = CONCAT('$[', COUNTER, ']');
SET VAR_MANAGER_ID = JSON_PARSE(VAR_MANAGER_IDS, PATH);
# See if we've reached the end of the list
IF VAR_MANAGER_ID IS NULL
THEN
BREAK
END;
INSERT INTO LU_MANAGER (MANAGER_ID) VALUES (VAR_MANAGER_ID);
答案 0 :(得分:5)
在这里完成新手,但我找到了一种使用REPEAT
- UNTIL
- END REPEAT
REPEAT
SET txt = JSON_EXTRACT(myjson, CONCAT("$[", indx, "]"));
# use txt
SET indx = indx + 1;
UNTIL indx = JSON_LENGTH(myjson)
END REPEAT;