触发条件
当用户使用以下表述时触发此技能:
- - "帮我查找一下这句 sql 语句是在哪个地方的代码触发的"
- "查询这个 SQL 代码位置"
- "这条 SQL 是从哪里调用的"
- "定位这条 SQL 的触发代码"
- "查找 SQL 触发位置"
执行流程
1. 提取关键信息
从 SQL 语句中提取:
- - 主表名:FROM 后的表名(如
pk_transaction_meet_records) - 关联表名:JOIN、EXISTS 子句中的表名
- 关键条件:WHERE 中的特殊字段组合
- 查询特征:特殊结构(如嵌套 EXISTS、特定字段组合)
2. 搜索代码位置
使用 grep 工具执行以下搜索(按优先级):
- 1. 搜索表名(最精确)
- 搜索模式:
pk_表名
- 文件类型:
*.php
- 搜索范围: INLINECODE3
- 2. 搜索模型类名
- 转换规则:去掉
pk_ 前缀,转 PascalCase
- 如:
pk_transaction_meet_records → INLINECODE6
- 3. 搜索特殊字段组合
- 提取 WHERE 条件中的 2-3 个特征字段
- 搜索这些字段的组合出现位置
3. 分析搜索结果
对比 SQL 特征和代码:
- - 字段匹配:SQL 中的字段是否在代码的 select/where 中出现
- 条件匹配:WHERE 条件是否与代码一致
- 结构匹配:JOIN/EXISTS 结构是否对应 whereHas/join 等
- 参数匹配:绑定参数的位置和数量
4. 定位关联关系
查找涉及的模型关联定义:
- - 搜索
function 关联名() 在 Models 目录 - 分析 belongsTo/hasMany 等关联类型
- 确认外键字段
5. 追踪调用链路
从找到的代码位置向上追踪:
- - 哪个 Controller 调用了这个 Service
- 哪个方法实例化了这个 Model
- 完整的调用路径
输出格式
CODEBLOCK0 php
// 关键代码片段(10-20 行)
---
### 🔗 关联关系链
查询涉及的模型关联:
1. **`关联名`** - `模型类::关联方法()`(第 X 行)
---
### 📋 生成的 SQL 结构
sql
-- SQL 结构说明
---
### 📂 调用链路
Controller.php:行号
↓ (调用说明)
Service.php:行号
↓
Model::query()
↓
最终 SQL
CODEBLOCK3
表名映射参考
| 表名 | 模型类 |
|---|
| pktransactionmeetrecords | TransactionMeetRecord |
| pkcustomer |
Customers |
| pk
customercard | CustomerCard |
| pk
orderoffline | OrderOffline |
| pk
orderoffline
refundlogs | OrderOfflineRefundLogs |
| pk
orderonline | OrderOnline |
| pk
templateactivity | TemplateActivity |
| pk_guide | StoreGuide |
| pk_store | Store |
| pk
customergoods
attributetag | CustomerGoodsAttributeTag |
| pk
guidecustomer | GuideCustomer |
| pk
promotiongoods | PromotionGoods |
| pk
ordergoods_online | OrderGoodsOnline |
| pk
ordergoods
onlinerecords | OrderGoodsOnlineRecord |
SQL 结构对应
| SQL 结构 | Laravel 写法 |
|---|
| EXISTS (SELECT...) | whereHas() / whereExists() |
| LEFT JOIN |
leftJoin() / with() |
| INNER JOIN | join() |
| BETWEEN ... AND ... | whereBetween() |
| IN (...) | whereIn() |
| NOT EXISTS | whereDoesntHave() |
特殊字段组合
| 字段组合 | 可能业务 |
|---|
| businessno + sourcetype + ismet | TransactionMeetRecord |
| orderno + refundorderno + is_valid |
OrderOfflineRefundLogs |
| customer
id + firstconsume
time + secondconsume_time | CustomerCard |
| guide
id + customerid + relation_type | GuideCustomer |
| attribute
pid + attributeid + num | CustomerGoodsAttributeTag |
注意事项
- 1. 优先使用精确搜索(完整表名),再使用模糊搜索
- 注意表名前缀(pk_)和模型命名规则
- 如果找到多个匹配位置,按匹配度排序并说明差异
- SQL 中的
? 在代码中对应变量或请求参数 - 某些 SQL 可能由多个代码位置生成,需列出所有可能
触发条件
当用户使用以下表述时触发此技能:
- - 帮我查找一下这句 sql 语句是在哪个地方的代码触发的
- 查询这个 SQL 代码位置
- 这条 SQL 是从哪里调用的
- 定位这条 SQL 的触发代码
- 查找 SQL 触发位置
执行流程
1. 提取关键信息
从 SQL 语句中提取:
- - 主表名:FROM 后的表名(如 pktransactionmeet_records)
- 关联表名:JOIN、EXISTS 子句中的表名
- 关键条件:WHERE 中的特殊字段组合
- 查询特征:特殊结构(如嵌套 EXISTS、特定字段组合)
2. 搜索代码位置
使用 grep 工具执行以下搜索(按优先级):
- 1. 搜索表名(最精确)
- 搜索模式:pk_表名
- 文件类型:*.php
- 搜索范围:app/
- 2. 搜索模型类名
- 转换规则:去掉 pk_ 前缀,转 PascalCase
- 如:pk
transactionmeet_records → TransactionMeetRecord
- 3. 搜索特殊字段组合
- 提取 WHERE 条件中的 2-3 个特征字段
- 搜索这些字段的组合出现位置
3. 分析搜索结果
对比 SQL 特征和代码:
- - 字段匹配:SQL 中的字段是否在代码的 select/where 中出现
- 条件匹配:WHERE 条件是否与代码一致
- 结构匹配:JOIN/EXISTS 结构是否对应 whereHas/join 等
- 参数匹配:绑定参数的位置和数量
4. 定位关联关系
查找涉及的模型关联定义:
- - 搜索 function 关联名() 在 Models 目录
- 分析 belongsTo/hasMany 等关联类型
- 确认外键字段
5. 追踪调用链路
从找到的代码位置向上追踪:
- - 哪个 Controller 调用了这个 Service
- 哪个方法实例化了这个 Model
- 完整的调用路径
输出格式
markdown
SQL 语句触发位置分析
📍 触发代码位置
文件路径: /path/to/file.php
方法: methodName(第 X 行开始)
具体代码段: 第 X-Y 行
🔍 SQL 生成逻辑
这段代码通过 [Laravel Eloquent 特性] 生成:
php
// 关键代码片段(10-20 行)
🔗 关联关系链
查询涉及的模型关联:
- 1. 关联名 - 模型类::关联方法()(第 X 行)
📋 生成的 SQL 结构
sql
-- SQL 结构说明
📂 调用链路
Controller.php:行号
↓ (调用说明)
Service.php:行号
↓
Model::query()
↓
最终 SQL
💡 使用场景
这个查询用于 [业务场景说明]
表名映射参考
| 表名 | 模型类 |
|---|
| pktransactionmeetrecords | TransactionMeetRecord |
| pkcustomer |
Customers |
| pk
customercard | CustomerCard |
| pk
orderoffline | OrderOffline |
| pk
orderoffline
refundlogs | OrderOfflineRefundLogs |
| pk
orderonline | OrderOnline |
| pk
templateactivity | TemplateActivity |
| pk_guide | StoreGuide |
| pk_store | Store |
| pk
customergoods
attributetag | CustomerGoodsAttributeTag |
| pk
guidecustomer | GuideCustomer |
| pk
promotiongoods | PromotionGoods |
| pk
ordergoods_online | OrderGoodsOnline |
| pk
ordergoods
onlinerecords | OrderGoodsOnlineRecord |
SQL 结构对应
| SQL 结构 | Laravel 写法 |
|---|
| EXISTS (SELECT...) | whereHas() / whereExists() |
| LEFT JOIN |
leftJoin() / with() |
| INNER JOIN | join() |
| BETWEEN ... AND ... | whereBetween() |
| IN (...) | whereIn() |
| NOT EXISTS | whereDoesntHave() |
特殊字段组合
| 字段组合 | 可能业务 |
|---|
| businessno + sourcetype + ismet | TransactionMeetRecord |
| orderno + refundorderno + is_valid |
OrderOfflineRefundLogs |
| customer
id + firstconsume
time + secondconsume_time | CustomerCard |
| guide
id + customerid + relation_type | GuideCustomer |
| attribute
pid + attributeid + num | CustomerGoodsAttributeTag |
注意事项
- 1. 优先使用精确搜索(完整表名),再使用模糊搜索
- 注意表名前缀(pk_)和模型命名规则
- 如果找到多个匹配位置,按匹配度排序并说明差异
- SQL 中的 ? 在代码中对应变量或请求参数
- 某些 SQL 可能由多个代码位置生成,需列出所有可能