php - 有没有办法获取在哪里匹配的列的值?
问题描述
我正在尝试开发一种搜索算法。这是我现在面临的一个问题。
姓名 | 地点 |
---|---|
第一的 | 位置 1 |
第二 | 位置 2 |
Sql = select id, [matched_column_value] FROM table WHERE name = "%fir%" OR Location = "%fir%";
我想要matched_column_value 中的值“First”。
如果位置列匹配,则值应为位置。
如果有人知道解决此问题的功能或方法,请告诉我。
解决方案
不存在简单的方法。丑陋的方式可能是这样的
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%";
推荐阅读
- sql - Oracle 过程优化
- python - 如何在非常大的 pandas 数据帧上应用函数,函数取决于连续行?
- java - ModelMapper:如何在使用带有自定义映射的 TypeMap 时保持转换器在映射器级别注册
- html - jQuery #dialog 被多个类调用
- google-apps-script - 无法在 Google Apps 脚本中获取工作表 ID
- python-3.x - 用于 file_reference 的方法 GetUserPhotosRequest
- django - 如何在 spyder 中调试 django
- r - 如何引用通过R中的粘贴获得名称的对象
- servlets - 仅允许来自允许域的 AEM Servlet
- google-apps-script - Google Apps 脚本 - 用于确认脚本执行的 msgBox