Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在多个列中搜索MySQL并找到匹配的列_Mysql - Fatal编程技术网

在多个列中搜索MySQL并找到匹配的列

在多个列中搜索MySQL并找到匹配的列,mysql,Mysql,我需要一些关于如何做到这一点的建议。如果我有这样的疑问 从目录中选择*其中记录id=$var或表单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 a,b,c, 1 from catalog where

我需要一些关于如何做到这一点的建议。如果我有这样的疑问 从
目录
中选择*其中
记录id
=$var或
表单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 a,b,c, 1 from catalog where record_id = $var
union
select a,b,c, 2 from catalog where form_id = $var
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;
然后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 injetion

select *,
case when record_id = $var then 1 else 2 end as matches 
from table
where record_id = $var or form_id = $var

请注意$var上的sql injetion

您想如何/在何处使用此信息?您想如何/在何处使用此信息?很抱歉我的无知。我对路易斯和你犯了同样的错误。我得到了一个错误。您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第5行“table where record_id=522或form_id=123”附近使用的正确语法;对不起我的无知。我对路易斯和你犯了同样的错误。我得到了一个错误。您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第5行“table where record_id=522或form_id=123”附近使用的正确语法;
select *,
case when record_id = $var then 1 else 2 end as matches 
from table
where record_id = $var or form_id = $var