0

これを達成する方法についてアドバイスが必要です。catalogSELECT * FROM WHERE record_id= $var OR form_id= $var;のようなクエリがあるとします。

私がしたいのは、どの列が一致したかを知ることです。それは記録でしたか、それともフォームでしたか?

4

3 に答える 3

4

多分このように:

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がどちらかを示します。

于 2012-05-02T20:55:06.443 に答える
1
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インジェクションに注意してください

于 2012-05-02T21:08:00.497 に答える
1
select *,
case when record_id = $var then 1 else 2 end as matches 
from table
where record_id = $var or form_id = $var
于 2012-05-02T21:08:45.777 に答える