qq_17031883 2024-08-02 20:59 采纳率: 32.3%
浏览 13
已结题

mysql 对多个字段模糊查询,返回第一个匹配的字段

mysql 对多个字段模糊查询,返回第一个匹配的字段,箭头处为第一个匹配字段

img

  • 写回答

17条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-08-02 21:21
    关注
    获得0.60元问题酬金

    🕗晚上好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:山有木兮木有枝,心悦君兮君不知。

    SELECT
      *,
      CASE
        WHEN col1 LIKE '%keyword%' THEN 'col1'
        WHEN col2 LIKE '%keyword%' THEN 'col2'
        WHEN col3 LIKE '%keyword%' THEN 'col3'
        -- ... 添加更多字段
        ELSE NULL  -- 没有匹配项
      END AS matched_column
    FROM your_table
    WHERE 
      col1 LIKE '%keyword%' OR 
      col2 LIKE '%keyword%' OR 
      col3 LIKE '%keyword%' 
      -- ... 添加更多字段
    ;
    

    代码解释:

    1. SELECT *, ...: 查询所有字段,并添加一个名为 matched_column 的计算字段。
    2. CASE WHEN ... THEN ... ELSE ... END: 使用 CASE 语句判断哪个字段匹配。
      • WHEN col1 LIKE '%keyword%' THEN 'col1': 如果 col1 包含关键词,则 matched_column 的值为 'col1'。
      • 重复上述逻辑,检查其他字段 (col2, col3 等)。
      • ELSE NULL: 如果所有字段都不匹配,则 matched_column 的值为 NULL。
    3. FROM your_table: 指定要查询的表名,请替换成你的实际表名。
    4. WHERE ...: 使用 OR 连接多个 LIKE 条件,对多个字段进行模糊查询。
      • col1 LIKE '%keyword%': 检查 col1 是否包含关键词。
      • 重复上述逻辑,添加其他字段的查询条件。

    使用方法:

    1. your_table 替换为你的表名。
    2. col1, col2, col3 替换为你要查询的字段名。
    3. 'keyword' 替换为你要搜索的关键词。
    4. 根据需要添加或删除 CASE 语句中的条件,以匹配所有需要查询的字段。

    示例:

    假设你的表名为 products,包含 name, description, category 三个字段, 你想搜索包含 "手机" 的记录,并返回第一个匹配的字段名:

    SELECT
      *,
      CASE
        WHEN name LIKE '%手机%' THEN 'name'
        WHEN description LIKE '%手机%' THEN 'description'
        WHEN category LIKE '%手机%' THEN 'category'
        ELSE NULL
      END AS matched_column
    FROM products
    WHERE 
      name LIKE '%手机%' OR 
      description LIKE '%手机%' OR 
      category LIKE '%手机%' 
    ;
    

    这个查询会返回所有包含 "手机" 的记录,并在 matched_column 中标识第一个匹配的字段名。

    评论

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 创建了问题 8月2日

悬赏问题

  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥100 求ASMedia ASM1184e & ASM1187e 芯片datasheet/规格书
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL