You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL查询需求:根据UUID双向查询关联UUID及时间

实现目标查询的两种MySQL方案

当然可以实现这个需求!下面给你两种简洁高效的方法,都能满足你同时匹配uuid1或uuid2为目标值,并返回对应关联字段和time的要求。

方法一:使用UNION ALL合并两个查询

这种方法逻辑直观,分别处理两种匹配场景后合并结果:

SELECT 
  time,
  uuid2 AS matched_uuid
FROM your_table
WHERE uuid1 = 'abc'

UNION ALL

SELECT 
  time,
  uuid1 AS matched_uuid
FROM your_table
WHERE uuid2 = 'abc';

结果说明

针对你提供的示例数据,执行这条SQL后会得到:

timematched_uuid
1def
2ghi

UNION ALL会保留所有符合条件的行(如果不需要重复结果可以用UNION,但性能稍差),两个子查询分别提取对应场景的关联uuid,并统一字段别名为matched_uuid,让结果结构一致。

方法二:使用CASE表达式单表扫描

如果希望只扫描一次表(性能更优,尤其是数据量较大时),可以用CASE表达式动态选择返回的uuid:

SELECT 
  time,
  CASE
    WHEN uuid1 = 'abc' THEN uuid2
    WHEN uuid2 = 'abc' THEN uuid1
  END AS matched_uuid
FROM your_table
WHERE uuid1 = 'abc' OR uuid2 = 'abc';

结果说明

这条SQL会直接过滤出uuid1或uuid2等于目标值的行,然后通过CASE判断当前行属于哪种匹配场景,返回对应的关联uuid,最终结果和方法一完全一致。

测试用示例代码

如果你想快速验证,可以先创建测试表并插入数据:

CREATE TABLE your_table (
  time INT,
  uuid1 VARCHAR(10),
  uuid2 VARCHAR(10),
  UNIQUE KEY (time) -- 对应你提到的唯一字段time
);

INSERT INTO your_table VALUES (1, 'abc', 'def'), (2, 'ghi', 'abc');

内容的提问来源于stack exchange,提问作者saltemohn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:44:42