首页 > 解决方案 > 有没有办法获取在哪里匹配的列的值?

问题描述

我正在尝试开发一种搜索算法。这是我现在面临的一个问题。

姓名 地点
第一的 位置 1
第二 位置 2

Sql = select id, [matched_column_value] FROM table WHERE name = "%fir%" OR Location = "%fir%";

我想要matched_column_value 中的值“First”。

如果位置列匹配,则值应为位置。

如果有人知道解决此问题的功能或方法,请告诉我。

标签: phpmysqlsqldatabase

解决方案


不存在简单的方法。丑陋的方式可能是这样的

SELECT id,
    CASE
        WHEN name LIKE "%fir%" and location LIKE "%fir%" THEN "???"
        WHEN name LIKE "%fir%" THEN name
        WHEN location LIKE "%fir%" THEN location
        ELSE null
    END as match
FROM 
    table
WHERE 
    name LIKE "%fir%" OR Location LIKE "%fir%";

推荐阅读