我有像这样的SQL查询
SELECT * FROM table WHERE :value IN(col1, col2, col3)
在表中的三列中找到我的php变量的值。 我怎样才能知道从col1,col2和col3找到值的位置? 或者还有其他方法可以得到相同的结果吗?
答案 0 :(得分:9)
添加CASE
声明:
SELECT *,
CASE WHEN col1 = :value THEN 'COL1'
WHEN col2 = :value THEN 'COL2'
ELSE 'COL3'
END AS EXIST_IN
FROM table
WHERE :value IN (col1, col2, col3)
答案 1 :(得分:0)
执行查询后返回行时,它还会返回列名。包含搜索值的列将具有值,其他列将显示NULL。
因此,要检查它,您可以使用服务器端编程来检查返回行中的列名,或者在SQL中使用if-else或case。