Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.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查询,以确定哪个sql表列包含给定字符串_Mysql_Sql_Database_Rdbms_Dbms Output - Fatal编程技术网

mysql查询,以确定哪个sql表列包含给定字符串

mysql查询,以确定哪个sql表列包含给定字符串,mysql,sql,database,rdbms,dbms-output,Mysql,Sql,Database,Rdbms,Dbms Output,鉴于: 现在,如果在第2列或第3列中有一个字符串,那么如何在这些列中查找列名称 例如:我们将始终获得第1列的值,即1920;第2列或第3列中的一些字符串也将用于例如:abc。因此,我们需要通过mysql查询在1920年确定“abc”在第1列或第2列中。您可以使用CASE TABLE : columns(column1(primary key),column2,column3) column1 column2 column3 1920 abc

鉴于:

现在,如果在第2列或第3列中有一个字符串,那么如何在这些列中查找列名称


例如:我们将始终获得第1列的值,即1920;第2列或第3列中的一些字符串也将用于例如:abc。因此,我们需要通过mysql查询在1920年确定“abc”在第1列或第2列中。

您可以使用
CASE

TABLE : columns(column1(primary key),column2,column3)

column1        column2       column3
1920           abc           def
1930           xyz           hji
1940           def           abc

如果两列包含相同的字符串怎么办?不,两列将不包含相同的字符串,即在1920年;Culn2和Culn3将包含不同的值。这种问题通常是设计不佳的症状。您应该考虑在应用程序代码中(通过维护字典类型的数据结构,甚至在XML中),而不是在DSPE中给出。output@NikitaGupta我添加了一个sqlfiddle演示,演示了它的工作原理。
SELECT CASE WHEN column2 = 'abc' THEN 'column2'
            WHEN column3 = 'abc' THEN 'column3'
       END AS which_column
FROM yourTable
WHERE column1 = 1920