Php MySQL从搜索结果中获取列名

Php MySQL从搜索结果中获取列名,php,mysql,search,Php,Mysql,Search,如果我运行这样的程序: SELECT * FROM my_table WHERE a = 'foo' OR b = 'foo' OR c = 'foo' $row['a'] $row['b'] $row['c'] 我想知道“foo”是在a、b、c栏还是“a和b”栏等等 在MySQL中有什么方法可以做到这一点吗?使用数据库中的任何东西,您应该能够将查询结果放入数组中,如下所示: SELECT * FROM my_table WHERE a = 'foo' OR b = 'foo' OR c =

如果我运行这样的程序:

SELECT * FROM my_table WHERE a = 'foo' OR b = 'foo' OR c = 'foo'
$row['a']
$row['b']
$row['c']
我想知道“foo”是在a、b、c栏还是“a和b”栏等等


在MySQL中有什么方法可以做到这一点吗?

使用数据库中的任何东西,您应该能够将查询结果放入数组中,如下所示:

SELECT * FROM my_table WHERE a = 'foo' OR b = 'foo' OR c = 'foo'
$row['a']
$row['b']
$row['c']

在此之后,您可以使用php函数查看foo所在的列。

如果您不希望将它们连接起来,类似这样的内容可以满足您的需要

SELECT IF(a = 'foo', 'Yes','No') AS Was_In_A,
IF(b = 'foo', 'Yes','No') AS  Was_In_B,
IF(c = 'foo', 'Yes','No') AS Was_In_C
FROM my_table WHERE a = 'foo' OR b = 'foo' OR c = 'foo'

您总是可以在选择结果中测试a、b和c的值,但这可能会使事情变得更简单

SELECT (a = 'foo') as FooInA, (b = 'foo') as FooInB, 
       (a = 'foo') AND (b = 'foo') as FooInAandB 
FROM my_table WHERE a = 'foo' OR b = 'foo' OR c = 'foo'
可以使用和在一列中显示用逗号分隔的已建立的列

SELECT *,
CONCAT_WS(',',(IF(a = 'foo','a',NULL)) ,(IF( b = 'foo','b',NULL)) ,(IF(c = 'foo','c',NULL)))
AS WhereFound
FROM my_table WHERE a = 'foo' OR b = 'foo' OR c = 'foo'

谢谢这就是我要找的!