mysql查询,以确定哪个sql表列包含给定字符串
鉴于: 现在,如果在第2列或第3列中有一个字符串,那么如何在这些列中查找列名称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
例如:我们将始终获得第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