PDO检索从中找到数据的列名称

时间:2014-06-30 06:37:43

标签: php mysql sql regex pdo

我对可能难以理解的标题表示道歉,事实证明很难浓缩我的问题。

我目前正在使用PDO在多列中搜索匹配项,并返回匹配的行。

简化:

$query = "SELECT * FROM patient WHERE firstname = ? OR lastname = ?"

我遍历结果等等。

但是,我的雇主希望被告知匹配发生在哪一列(例如,如果匹配发生在'firstname'列中,则应返回'firstname')。

就我所搜索而言,没有任何类型的PDO功能或功能可以做到这一点,更不用说由于棘手的措辞而难以搜索。

我正在考虑使用返回的数据然后再次搜索匹配的列,但我仍然不确定要使用什么,fetchColumn似乎是要走的路。

1 个答案:

答案 0 :(得分:2)

SELECT 
    *,
    firstname = :firstname AS found_in_firstname,
    lastname = :lastname AS found_in_lastname
FROM
    patient
WHERE
    firstname = :firstname OR lastname = :lastname

此查询将返回与您相同的结果,但将包含两个额外的列found_in_firstnamefound_in_lastname,其中布尔值表示是否给定了coulmn mached搜索条件。