我对可能难以理解的标题表示道歉,事实证明很难浓缩我的问题。
我目前正在使用PDO在多列中搜索匹配项,并返回匹配的行。
简化:
$query = "SELECT * FROM patient WHERE firstname = ? OR lastname = ?"
我遍历结果等等。
但是,我的雇主希望被告知匹配发生在哪一列(例如,如果匹配发生在'firstname'列中,则应返回'firstname')。
就我所搜索而言,没有任何类型的PDO功能或功能可以做到这一点,更不用说由于棘手的措辞而难以搜索。
我正在考虑使用返回的数据然后再次搜索匹配的列,但我仍然不确定要使用什么,fetchColumn
似乎是要走的路。
答案 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_firstname
和found_in_lastname
,其中布尔值表示是否给定了coulmn mached搜索条件。