これを達成する方法についてアドバイスが必要です。catalog
SELECT * FROM WHERE record_id
= $var OR form_id
= $var;のようなクエリがあるとします。
私がしたいのは、どの列が一致したかを知ることです。それは記録でしたか、それともフォームでしたか?
これを達成する方法についてアドバイスが必要です。catalog
SELECT * FROM WHERE record_id
= $var OR form_id
= $var;のようなクエリがあるとします。
私がしたいのは、どの列が一致したかを知ることです。それは記録でしたか、それともフォームでしたか?
多分このように:
select a,b,c, 1 from catalog where record_id = $var
union
select a,b,c, 2 from catalog where form_id = $var
次に、1または2がどちらかを示します。
SELECT *,
CASE
WHEN record_id = $var and form_id = $var THEN 'both'
WHEN record_id = $var THEN 'record_id'
WHEN form_id = $var THEN 'form_id'
ELSE 'none' -- can't happen becouse of where clause
END CASE as how_it_was
FROM catalog WHERE record_id = $var OR form_id = $var;
$varでのSQLインジェクションに注意してください
select *,
case when record_id = $var then 1 else 2 end as matches
from table
where record_id = $var or form_id = $var