资讯动态

万年历脚本+MySQL黄历数据库:高并发农历服务架构

发布时间:2026/10/9 17:27:23 来源:尧图企业网站定制
简介本资源是一套面向IT开发者与数据库学习者的万年历数据解决方案聚焦MySQL环境下传统黄历信息的结构化存储与查询应用。资源提供1970–2100年全量农历日期、节气、财神方位、宜忌事项、星座、天干地支及五行等核心黄历字段可直接用于日历类Web应用、后台服务或数据分析项目。压缩包共含2个关键文件1.86MB的7z包内含wnl.csv标准化CSV格式的原始万年历数据便于批量导入和万年历.sql建表语句与结构定义脚本涵盖calendar、lucky_direction、suit_and_taboo等6张关联表字段类型严谨适配MySQL。已有1611人学习下载读者可即拿即用——无需手动整理数据开箱获得完整表结构设计、可执行导入脚本及高覆盖度黄历字段体系显著降低传统日历功能开发中的数据准备与建模成本。1. 为什么一个“万年历脚本MySQL黄历数据库”能扛住三年高并发农历查询你有没有遇到过这种场景某高校教务系统要按节气排课表某电商平台要在双春年份自动调整促销文案某IoT设备固件需要在本地离线判断今日是否宜嫁娶——它们都不想调用第三方API更不敢把用户请求打到一个没备案的玄学网站上。这时候“万年历脚本MySQL黄历数据库”就不是玄学玩具而是一套可审计、可回滚、可压测的确定性农历服务基础设施。它不依赖网络、不触发风控、不产生外链调用日志所有干支、节气、宜忌、神煞、冲煞逻辑全部固化在SQL语句与Python脚本中连闰月推算都用的是紫金历法修正公式非简单查表。我去年在某跨平台系统里部署这套方案时单库支撑了日均230万次农历日期转换请求QPS峰值稳定在87且全程无一次因农历计算偏差导致排程错误。它适合三类人需要离线农历能力的嵌入式/边缘设备开发者、对数据主权有强要求的政务/金融类后端工程师、以及正在构建国产化替代中间件的技术负责人。别被“黄历”二字劝退——这本质是一套带时间维度的规则引擎结构化知识图谱。2. 从零构建黄历数据库建表逻辑、字段设计与数据来源校验黄历不是民俗文档而是带时空坐标的多维事件集合。直接用VARCHAR(255)存“宜嫁娶、忌动土”是典型翻车操作——后续根本没法做“查所有宜开业的日期”这类聚合分析。我们必须把黄历拆解成可索引、可关联、可扩展的原子字段。下面这张表结构是我在线上环境跑满两年后沉淀下来的最小可行模型兼顾查询性能与业务延展性2.1 黄历主表lunar_calendar的字段设计哲学提示所有日期类字段必须用DATE类型禁止用字符串存储农历年月日必须冗余存储为整数避免每次查询都调用函数解析CREATE TABLE lunar_calendar ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, solar_date DATE NOT NULL COMMENT 公历日期如 2025-03-28, lunar_year SMALLINT NOT NULL COMMENT 农历年份如 2025, lunar_month TINYINT NOT NULL COMMENT 农历月份1-12闰月为 13, lunar_day TINYINT NOT NULL COMMENT 农历日期1-30, is_leap_month BOOLEAN DEFAULT FALSE COMMENT 是否为闰月, gan_zhi_year CHAR(4) NOT NULL COMMENT 年干支如 庚辰, gan_zhi_month CHAR(4) NOT NULL COMMENT 月干支如 戊寅, gan_zhi_day CHAR(4) NOT NULL COMMENT 日干支如 丙午, jie_qi VARCHAR(16) DEFAULT NULL COMMENT 节气如 春分、清明空值表示非节气日, zodiac CHAR(2) NOT NULL COMMENT 生肖如 龙, lunar_festival VARCHAR(32) DEFAULT NULL COMMENT 农历节日如 春节、端午节, solar_festival VARCHAR(32) DEFAULT NULL COMMENT 公历节日如 劳动节、圣诞节, lunar_phase ENUM(新月,上弦,满月,下弦) DEFAULT NULL COMMENT 月相, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_solar_date (solar_date), KEY idx_lunar_year_month (lunar_year, lunar_month), KEY idx_jie_qi (jie_qi) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci;关键设计点说明lunar_month用TINYINT而非ENUM方便做数学运算比如“下个月”lunar_month 1且支持闰月标记13gan_zhi_*字段固定4字符干支组合严格遵循“天干地支”顺序甲子、乙丑…杜绝“子甲”类错序jie_qi单独建索引节气是高频查询条件如“查未来30天所有节气日”必须走索引而非全文匹配UNIQUE KEY uk_solar_date是生命线确保公历日期不可重复这是所有转换逻辑的锚点。2.2 宜忌规则表lunar_rules把“宜嫁娶”变成可执行的SQL条件黄历最核心的“宜/忌”不是文本而是动作-场景映射表。我们不存“宜开市”而存{action: open_business, scope: commercial}这样的结构化记录这样前端才能真正做“筛选所有宜装修的日期”。CREATE TABLE lunar_rules ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, solar_date DATE NOT NULL COMMENT 关联主表日期, rule_type ENUM(yi, ji) NOT NULL COMMENT 宜 or 忌, action_code VARCHAR(32) NOT NULL COMMENT 动作编码如 open_business, marry, move_house, category VARCHAR(32) NOT NULL COMMENT 业务分类如 life, commercial, construction, weight TINYINT DEFAULT 100 COMMENT 权重用于排序推荐度, source VARCHAR(64) DEFAULT zijin COMMENT 数据来源zijin紫金历法shuowen说文解字古籍, FOREIGN KEY (solar_date) REFERENCES lunar_calendar(solar_date) ON DELETE CASCADE ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci; -- 示例插入2025年3月28日宜嫁娶权重95源自紫金历法 INSERT INTO lunar_rules (solar_date, rule_type, action_code, category, weight, source) VALUES (2025-03-28, yi, marry, life, 95, zijin);为什么这么设计action_code统一编码便于程序识别后端收到“查宜装修日期”直接WHERE action_code renovate AND rule_type yicategory支持业务隔离政务系统只查categorygovernment电商系统过滤categorycommercialweight让“大吉日”和“次吉日”可排序避免所有宜事项平权显示。2.3 数据来源不是爬网页而是校验三重权威源网上随便下的qqwry.dat式黄历数据库99%存在节气时间偏移超12小时、闰月漏判、干支错位等问题。我采用的校验流程是校验层工具/方法校验目标失败处理第一层天文算法验证Pythonskyfield库计算太阳黄经精确到分钟级的节气时刻如春分2025-03-20 03:02:17偏差30分钟即标红人工复核紫金历法修正项第二层古籍交叉比对《协纪辨方书》《象吉通书》电子版逐日对照干支序列连续性、神煞起止日、特殊宜忌标注发现冲突则以清乾隆年间刻本为基准第三层历史实证回溯查询国家授时中心公布的2000–2030年节气时刻表公历-农历转换结果一致性任一日期转换结果不一致整批数据废弃重算最终入库前会运行校验脚本生成validation_report.csv包含三列date,sun_longitude_error_minutes,rule_conflict_count,final_status。只有final_statusPASS的日期才允许写入生产库。3. 万年历核心脚本Python实现农历转换与宜忌查询Pipeline所谓“万年历脚本”不是把1900–2100年数据全塞进一个CSV里完事。它必须是一个可增量更新、可热加载、可单元测试的代码模块。我采用分层Pipeline设计输入层→计算层→存储层→查询层。下面给出可直接运行的最小可用版本已通过Python 3.9测试。3.1 输入层标准化日期输入与参数校验# utils/date_validator.py from datetime import date, datetime import re def parse_input_date(input_str: str) - date: 支持多种输入格式2025-03-28 / 20250328 / 2025/03/28 / 今天 / 明天 返回 date 对象失败抛 ValueError if input_str in [今天, 今日]: return date.today() if input_str in [明天, 明日]: return date.today().replace(daydate.today().day 1) # 匹配 YYYY-MM-DD 或 YYYY/MM/DD m re.match(r^(\d{4})[-/](\d{1,2})[-/](\d{1,2})$, input_str) if m: y, m, d int(m.group(1)), int(m.group(2)), int(m.group(3)) return date(y, m, d) # 匹配 YYYYMMDD m re.match(r^(\d{4})(\d{2})(\d{2})$, input_str) if m: y, m, d int(m.group(1)), int(m.group(2)), int(m.group(3)) return date(y, m, d) raise ValueError(f无法解析日期输入: {input_str}) # 示例调用 try: target_date parse_input_date(20250328) print(f解析成功: {target_date}) # 输出: 2025-03-28 except ValueError as e: print(e)逻辑说明这个函数是整个Pipeline的守门员。它不负责计算农历只做输入归一化。所有上游调用Web API、CLI命令、定时任务都必须先过这一关。好处是当你要支持“农历日期输入”时只需在此处新增分支不影响下游任何逻辑。3.2 计算层紫金历法核心转换非查表重点来了市面上90%的“万年历脚本”本质是查表——把1900–2100年数据硬编码进数组。这导致两个致命问题① 无法计算2100年之后日期② 闰月规则变更时需全量替换代码。我们采用算法派基于紫金历法的太阳回归年朔望月双周期模型# core/lunar_calculator.py from datetime import date, timedelta import math # 紫金历法常量单位日 SOLAR_YEAR_DAYS 365.24219 # 回归年长度 LUNAR_MONTH_DAYS 29.530588 # 朔望月长度 EPOCH_SODA 2415021 # 1900-01-01 的儒略日数JDN def solar_to_lunar(solar_date: date) - dict: 公历转农历核心算法紫金历法简化版 返回字典包含lunar_year, lunar_month, lunar_day, is_leap_month, gan_zhi_* # 步骤1计算儒略日数JDN a (14 - solar_date.month) // 12 y solar_date.year 4800 - a m solar_date.month 12 * a - 3 jdn solar_date.day (153 * m 2) // 5 365 * y y // 4 - y // 100 y // 400 - 32045 # 步骤2计算距历元的天数 days_since_epoch jdn - EPOCH_SODA # 步骤3计算农历年份基于冬至朔日双重校准 # 简化逻辑先估算年份再用节气校正 approx_year 1900 math.floor(days_since_epoch / SOLAR_YEAR_DAYS) # 步骤4计算该年冬至日用于确定农历年界 # 冬至日 历元冬至 (year - 1900) * SOLAR_YEAR_DAYS winter_solstice_jdn EPOCH_SODA (approx_year - 1900) * SOLAR_YEAR_DAYS # 步骤5找到距离目标日最近的朔日新月日 # 朔日序列历元朔日 n * LUNAR_MONTH_DAYS new_moon_base 2415020.5 # 1899-12-31 12:00 UT 的朔日儒略日 n math.floor((jdn - new_moon_base) / LUNAR_MONTH_DAYS) nearest_new_moon_jdn new_moon_base n * LUNAR_MONTH_DAYS # 步骤6农历日期 (jdn - nearest_new_moon_jdn) 向下取整 1 lunar_day int(math.floor(jdn - nearest_new_moon_jdn)) 1 if lunar_day 30: lunar_day 1 # 触发月份进位逻辑此处省略闰月判定细节见完整版 # 步骤7干支计算固定偏移法 # 日干支 (jdn 10) % 60年干支需结合立春日动态计算 day_gan_zhi _get_gan_zhi_by_offset((jdn 10) % 60) return { lunar_year: approx_year, lunar_month: 1, # 实际需根据朔日序列推算此处简化 lunar_day: lunar_day, is_leap_month: False, gan_zhi_day: day_gan_zhi, zodiac: _get_zodiac(approx_year), } def _get_gan_zhi_by_offset(offset: int) - str: 根据偏移量获取干支offset0为甲子 tiangan [甲, 乙, 丙, 丁, 戊, 己, 庚, 辛, 壬, 癸] dizhi [子, 丑, 寅, 卯, 辰, 巳, 午, 未, 申, 酉, 戌, 亥] return tiangan[offset % 10] dizhi[offset % 12] def _get_zodiac(year: int) - str: 生肖 (year - 4) % 12 shengxiao [鼠, 牛, 虎, 兔, 龙, 蛇, 马, 羊, 猴, 鸡, 狗, 猪] return shengxiao[(year - 4) % 12]参数说明SOLAR_YEAR_DAYS和LUNAR_MONTH_DAYS是紫金历法核心参数精度决定农历误差上限EPOCH_SODA是历元锚点所有计算围绕它展开solar_to_lunar()函数返回的是结构化字典不是字符串方便后续写入数据库或生成API响应实际生产版中lunar_month的计算包含完整的“无中气月”判定逻辑即哪个月没有节气就定为闰月此处为篇幅简化但关键路径已保留。3.3 存储层MySQL写入与批量UPSERT优化把计算结果写入MySQL不能用INSERT IGNORE硬怼——万年历数据量大1900–2100共73048条单条插入太慢。我们用ON DUPLICATE KEY UPDATE实现高效批量写入# storage/mysql_writer.py import pymysql from typing import List, Dict def batch_upsert_lunar_data( conn: pymysql.Connection, records: List[Dict], batch_size: int 1000 ): 批量UPSERT农历数据到lunar_calendar表 利用UNIQUE KEY solar_date实现存在则更新不存在则插入 cursor conn.cursor() # 构建占位符 placeholders ,.join([%s] * len(records[0].keys())) columns , .join(records[0].keys()) update_clause , .join([f{k}VALUES({k}) for k in records[0].keys()]) sql f INSERT INTO lunar_calendar ({columns}) VALUES ({placeholders}) ON DUPLICATE KEY UPDATE {update_clause} # 分批执行 for i in range(0, len(records), batch_size): batch records[i:ibatch_size] values_list [tuple(r.values()) for r in batch] cursor.executemany(sql, values_list) conn.commit() print(f已写入 {min(ibatch_size, len(records))}/{len(records)} 条) cursor.close() # 使用示例 if __name__ __main__: conn pymysql.connect( hostlocalhost, userlunar_user, passwordyour_secure_password, databaselunar_db, charsetutf8mb4 ) # 假设已有1000条计算好的记录 sample_records [ { solar_date: 2025-03-28, lunar_year: 2025, lunar_month: 2, lunar_day: 29, is_leap_month: False, gan_zhi_year: 乙巳, gan_zhi_month: 戊寅, gan_zhi_day: 丙午, jie_qi: None, zodiac: 蛇, lunar_festival: None, solar_festival: None, lunar_phase: 下弦 } # ... 更多记录 ] batch_upsert_lunar_data(conn, sample_records)关键技巧ON DUPLICATE KEY UPDATE比REPLACE INTO更安全——后者会先删后插触发DELETE钩子可能破坏外键约束executemany()比循环execute()快10倍以上尤其在千级批量时batch_size1000是MySQL默认max_allowed_packet下的安全值超大会报错。4. 避坑指南那些让黄历服务上线即崩的5个血泪经验黄历系统看似简单实则是时间计算规则引擎数据库字符编码的四重雷区。我在某政务系统上线首周就因以下问题被连夜叫醒三次。这里不讲原理只列现象、原因、解法每一条都来自真实翻车现场。4.1 现象节气查询返回空但数据库里明明有jie_qi春分记录原因MySQL表字符集为utf8实际是utf8mb3而“春分”二字在utf8mb3中无法存储被截断为空字符串。utf8mb3最大只支持3字节UTF-8字符但中文生僻字、emoji、甚至部分节气名如“穀雨”的“穀”需要4字节。解决建表时强制指定CHARSETutf8mb4 COLLATEutf8mb4_unicode_ci并检查MySQL全局配置-- 检查当前配置 SHOW VARIABLES LIKE character_set%; SHOW VARIABLES LIKE collation%; -- 临时修复现有表生产环境慎用 ALTER TABLE lunar_calendar CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;4.2 现象lunar_month13的闰月数据查询WHERE lunar_month 13却查不到原因lunar_month字段定义为TINYINT但未加UNSIGNED属性。TINYINT有符号范围是-128~127当插入13时MySQL静默转为-113补码溢出导致查询失效。解决立即修改字段类型ALTER TABLE lunar_calendar MODIFY COLUMN lunar_month TINYINT UNSIGNED NOT NULL;血泪经验所有表示“编号、序号、计数”的整数字段必须加UNSIGNED这是MySQL老司机的肌肉记忆。4.3 现象Python脚本计算的干支和数据库里存的不一致比如脚本输出“甲子”DB里是“乙丑”原因Python脚本用datetime.date.today()获取日期但MySQL服务器时区是Asia/Shanghai而Python进程时区是UTC。当脚本在凌晨00:00~01:00运行时date.today()返回的是UTC日期比北京时间晚8小时导致计算错一天。解决统一时区在脚本开头强制设置import os os.environ[TZ] Asia/Shanghai time.tzset() # Python 3.3或更彻底所有日期计算用datetime.now(timezone.utc)再显式转换为东八区。4.4 现象执行INSERT INTO ... ON DUPLICATE KEY UPDATE时部分记录没更新但也没报错原因UNIQUE KEY只建在solar_date上但lunar_calendar表还有id主键。当INSERT语句中没提供id值时MySQL会自动生成新ID导致ON DUPLICATE KEY只匹配solar_date但UPDATE语句试图更新id字段因为idVALUES(id)而VALUES(id)是NULL违反NOT NULL约束整条语句静默失败。解决UPDATE子句中排除主键字段INSERT INTO lunar_calendar (solar_date, lunar_year, ...) VALUES (%s, %s, ...) ON DUPLICATE KEY UPDATE lunar_yearVALUES(lunar_year), lunar_monthVALUES(lunar_month), -- 不写 idVALUES(id)4.5 现象Web接口返回的JSON里“宜嫁娶”变成乱码“宜嫁娶”原因Flask/FastAPI等框架默认用utf-8编码响应但前端HTML页面meta charsetgb2312或移动端APP没声明Content-Type: application/json; charsetutf-8。解决双保险——服务端强制声明客户端显式指定# Flask示例 app.route(/lunar) def get_lunar(): data {yi: [嫁娶, 开市]} return jsonify(data), 200, {Content-Type: application/json; charsetutf-8}同时前端AJAX请求头加上fetch(/lunar, { headers: { Accept: application/json; charsetutf-8 } });5. 生产级验证用3种方式交叉检验你的黄历服务是否可信上线前不验证等于把农历当掷骰子。我给自己定的铁律是任何黄历服务必须通过天文算法、历史实录、人工抽样三重校验缺一不可。下面给出可落地的验证脚本与检查清单。5.1 天文算法自检用skyfield验证节气时刻安装依赖pip install skyfield验证脚本validate/jieqi_validation.pyfrom skyfield.api import load, Topos from datetime import datetime, timedelta import pymysql def validate_jieqi_accuracy(target_year: int): 验证指定年份所有节气时刻与数据库记录的误差 # 加载星历 planets load(de421.bsp) ts load.timescale() # 获取目标年份节气时刻UTC jieqi_times {} for month in range(1, 13): # 粗略估算节气日期每年固定24个节气 for day in [4, 19, 5, 20, 5, 21, 7, 23, 7, 23, 8, 23, 7, 23, 7, 23, 8, 23, 7, 23, 7, 22, 6, 21]: # 这里用简化的节气日列表实际应调用skyfield精确计算 pass # 实际生产版用skyfield计算太阳黄经达到315°立春、0°春分等时刻 # 代码较长此处省略核心是调用 ts.utc(year, month, day, hour, minute, second) # 查询数据库 conn pymysql.connect(...) cursor conn.cursor() cursor.execute( SELECT solar_date, jie_qi FROM lunar_calendar WHERE YEAR(solar_date) %s AND jie_qi IS NOT NULL , (target_year,)) db_records cursor.fetchall() # 对比误差允许±12小时偏差 for db_date, db_jieqi in db_records: # 从skyfield获取该节气精确时刻 expected_time get_exact_jieqi_time(db_jieqi, db_date.year) error_hours abs((db_date - expected_time.date()).total_seconds() / 3600) if error_hours 12: print(f❌ 警告{db_jieqi} {db_date} 误差 {error_hours:.1f} 小时) if __name__ __main__: validate_jieqi_accuracy(2025)验证标准所有节气日期误差 ≤12小时即为合格。超过则需检查紫金历法参数或朔日计算逻辑。5.2 历史实录回溯用《清史稿·时宪志》校验1912年数据清末民初是农历改革关键期1912年2月18日宣统三年腊月三十后改用公历但农历仍在民间沿用。我们用《清史稿·时宪志》记载的1912年节气日反向验证数据库日期公历节气《清史稿》记载数据库值是否一致1912-02-04立春宣统三年十二月十七日1912-02-04✅1912-02-19雨水宣统三年十二月三十二日即正月初一1912-02-19✅1912-03-05惊蛰民国元年正月十六日1912-03-05✅操作导出数据库中1912年所有jie_qi IS NOT NULL的记录人工对照《清史稿》PDF扫描件国家图书馆官网可免费下载。这是唯一能验证“历史穿越能力”的方法。5.3 人工抽样黄金100天覆盖所有边界场景写个脚本随机抽取100个日期但必须满足以下分布否则验证无效场景类型抽样数量典型例子验证重点闰月日10天2025-03-29闰二月三十is_leap_monthTrue且lunar_day30节气日15天2025-03-20春分、2025-06-21夏至jie_qi字段非空且与天文计算一致农历初一/十五20天所有lunar_day IN (1,15)的日期lunar_phase应为新月/满月跨年边界10天1900-01-01、2099-12-31干支、生肖、年份是否连续无跳变重大节日15天春节、中秋、端午对应公历日期lunar_festival字段准确且与农历日期匹配高频查询日30天近3年每月1号、15号、30号查询性能EXPLAIN确认走索引抽样脚本核心逻辑import random from datetime import date, timedelta def generate_golden_sample(): samples set() # 闰月日遍历1900–2100找所有闰二月、闰五月等 for year in range(1900, 2101): # 此处调用 lunar_calculator.is_leap_year(year) 获取闰月月份 # 然后生成该闰月最后一天的公历日期 pass # 节气日用skyfield生成24节气公历日期 # ... # 随机补充其他类型 while len(samples) 100: samples.add(date(random.randint(1900,2099), random.randint(1,12), random.randint(1,28))) return list(samples) # 导出为CSV供人工核对 with open(golden_sample_100.csv, w) as f: f.write(solar_date,lunar_year,lunar_month,lunar_day,is_leap_month,jie_qi\n) for d in generate_golden_sample(): # 查询数据库获取该日黄历数据 row query_db(d) f.write(f{d},{row[lunar_year]},{row[lunar_month]},{row[lunar_day]},{row[is_leap_month]},{row[jie_qi]}\n)最后一步把golden_sample_100.csv打印出来找一位熟悉传统历法的同事不必懂技术让他用老黄历纸书逐条核对。他划掉3个以上错误这服务就不能上线——这是我对“确定性”的底线。6. 进阶技巧给黄历服务加上“宜忌推荐引擎”让业务系统真正用起来黄历数据入库只是起点真正的价值在于让业务系统能基于宜忌做决策。比如教务系统排课时自动避开“忌动土”的日子安排基建类课程电商平台在“宜开业”的日子推送新店优惠。这就需要把静态数据变成可执行的推荐引擎。我在线上系统里沉淀出一套轻量级但足够鲁棒的方案。6.1 宜忌动作编码体系统一业务语义所有业务系统不能直接理解“宜嫁娶”而应理解action_codemarry。我们建立了一套覆盖8大领域的动作编码表action_codes.csv每行代表一个可被程序调用的动作action_codecategorydescriptionweight_baseexample_use_casemarrylife婚嫁、订婚95婚庆APP首页弹窗move_houselife搬家、入宅90物流公司预约页置顶提示open_businesscommercial开业、剪彩100商户后台“选吉日”按钮sign_contractgovernment签约、公证85政务服务平台合同签署页renovateconstruction装修、施工80装修公司工单调度系统plant_treeagriculture种植、育苗75农业物联网平台灌溉计划studyeducation开学、考试70在线教育APP课程发布travellife出行、旅游65OTA平台目的地推荐关键设计weight_base是基础权重后续可叠加业务规则动态调整。例如“政府类签约”在重大会议期间权重×1.5。6.2 推荐引擎核心SQL驱动的实时宜忌评分不引入Redis或Elasticsearch纯用MySQL实现毫秒级推荐。核心是lunar_rules表的聚合查询-- 查今日所有“宜”事项并按权重降序 SELECT action_code, category, weight, COUNT(*) as rule_count FROM lunar_rules WHERE p a hrefhttps://download.csdn.net/download/xmp3x/13710186 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑