xinli/sql/check_duplicate_menus.sql
2025-11-06 14:59:32 +08:00

97 lines
3.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- ========================================
-- 检查重复菜单查询脚本
-- 用途:在执行清理前查看数据库中的重复菜单
-- ========================================
USE ry_news;
SET NAMES utf8mb4;
-- ========================================
-- 1. 查找所有重复的菜单基于menu_name和path组合
-- ========================================
SELECT
menu_name AS '菜单名称',
path AS '路由路径',
component AS '组件路径',
parent_id AS '父菜单ID',
COUNT(*) AS '重复数量',
GROUP_CONCAT(menu_id ORDER BY menu_id SEPARATOR ', ') AS '菜单ID列表'
FROM sys_menu
WHERE menu_name LIKE '%心理%'
OR menu_name LIKE '%量表%'
OR menu_name LIKE '%题目%'
OR menu_name LIKE '%因子%'
OR menu_name LIKE '%测评%'
OR menu_name LIKE '%报告%'
OR menu_name LIKE '%解释%'
OR menu_name LIKE '%档案%'
OR menu_name LIKE '%问卷%'
OR menu_name LIKE '%网站%'
OR menu_name LIKE '%栏目%'
OR menu_name LIKE '%评论%'
OR menu_name LIKE '%预警%'
GROUP BY menu_name, path, component, parent_id
HAVING COUNT(*) > 1
ORDER BY COUNT(*) DESC, menu_name;
-- ========================================
-- 2. 统计心理学相关菜单总数
-- ========================================
SELECT
'心理学相关菜单总数' AS '统计项',
COUNT(*) AS '数量'
FROM sys_menu
WHERE menu_name LIKE '%心理%'
OR menu_name LIKE '%量表%'
OR menu_name LIKE '%题目%'
OR menu_name LIKE '%因子%'
OR menu_name LIKE '%测评%'
OR menu_name LIKE '%报告%'
OR menu_name LIKE '%解释%'
OR menu_name LIKE '%档案%'
OR menu_name LIKE '%问卷%'
OR menu_name LIKE '%网站%'
OR menu_name LIKE '%栏目%'
OR menu_name LIKE '%评论%'
OR menu_name LIKE '%预警%';
-- ========================================
-- 3. 查找重复的父菜单(目录)
-- ========================================
SELECT
menu_name AS '目录名称',
COUNT(*) AS '重复数量',
GROUP_CONCAT(menu_id ORDER BY menu_id SEPARATOR ', ') AS '菜单ID列表'
FROM sys_menu
WHERE parent_id = 0
AND (menu_name LIKE '%心理%' OR menu_name LIKE '%网站%')
GROUP BY menu_name
HAVING COUNT(*) > 1;
-- ========================================
-- 4. 列出所有心理学相关菜单(按层级)
-- ========================================
SELECT
menu_id,
menu_name AS '菜单名称',
parent_id AS '父菜单ID',
path AS '路由路径',
component AS '组件路径',
menu_type AS '类型',
visible AS '是否显示',
order_num AS '排序'
FROM sys_menu
WHERE menu_name LIKE '%心理%'
OR menu_name LIKE '%量表%'
OR menu_name LIKE '%题目%'
OR menu_name LIKE '%因子%'
OR menu_name LIKE '%测评%'
OR menu_name LIKE '%报告%'
OR menu_name LIKE '%解释%'
OR menu_name LIKE '%档案%'
OR menu_name LIKE '%问卷%'
OR menu_name LIKE '%网站%'
OR menu_name LIKE '%栏目%'
OR menu_name LIKE '%评论%'
OR menu_name LIKE '%预警%'
ORDER BY parent_id, order_num, menu_id;