为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:windows
【CPU】: I5
【问题描述】*:
mysql8数据库脚本如下:
SELECT
a.menu_id "menuId",
a.`name` "name",
a.db_type "dbType",
CONCAT(
'[',
GROUP_CONCAT( CONCAT( '{"fieldType":"', a.field_type, '"' ), ',', CONCAT( '"content":"', ifnull( content, '' )), '"}' ),
']'
) fieldTypes
FROM
`zt_dzbd_form_b_front_behind` a
INNER JOIN ( SELECT min( a.id ) id, a.menu_id FROM zt_dzbd_form_b_front_behind a GROUP BY a.menu_id ) b ON a.menu_id = b.menu_id
GROUP BY
a.menu_id,
a.`name`,
a.db_type
ORDER BY
b.id
返回数据
menuId | name | dbType | fieldTypes |
---|---|---|---|
xxx | xxx | mysql8 | [{"fieldType":"varchar","content":"varchar有长度限制,最大长度设置不能超过数据库的字段长度"}] |
xxx | xxxx | mysql8 | [{"fieldType":"longtext","content":""},{"fieldType":"text","content":""}] |
DM8数据库脚本如下:
SELECT
a.menu_id menuId,
a.name name,
a.db_type dbType,
CONCAT(
'[',
WM_CONCAT( CONCAT( '{"fieldType":"', a.field_type, '"' ), ',', CONCAT( '"content":"', ifnull( content, '' )), '"}' ),
']'
) fieldTypes
FROM
zt_dzbd_form_b_front_behind a
INNER JOIN (
SELECT min( a.id ) id, a.menu_id
FROM
zt_dzbd_form_b_front_behind a
GROUP BY a.menu_id
) b ON a.menu_id = b.menu_id
GROUP BY
a.menu_id,
a.name,
a.db_type
ORDER BY
b.id
报错信息如下:
不知道如何修改,第一次用DM数据库。
SELECT
a.menu_id menuId,
a.name name,
a.db_type dbType,
CONCAT(
'[',
WM_CONCAT( CONCAT( '{"fieldType":"', a.field_type, '"' ) || ',' || CONCAT( '"content":"', ifnull( content, '' )) || '"}' ),
']'
) fieldTypes
FROM
zt_dzbd_form_b_front_behind a
INNER JOIN (
SELECT min( a.id ) id, a.menu_id
FROM
zt_dzbd_form_b_front_behind a
GROUP BY a.menu_id
) b ON a.menu_id = b.menu_id
GROUP BY
a.menu_id,
a.name,
a.db_type
ORDER BY
b.id
你报错是wm_concat函数位置,调整下wm_concat参数就行
你把达梦数据库修改成兼容mysql模式,修改命令如下

ALTER SYSTEM SET 'COMPATIBLE_MODE'=4 SPFILE;
然后重启数据库。