Mysql SQL:编写一个给定varchar的查询,查找它是否存在于列a或列B中
假设我有一个有两列的表,a和BMysql SQL:编写一个给定varchar的查询,查找它是否存在于列a或列B中,mysql,Mysql,假设我有一个有两列的表,a和B CREATE table test( A VARCHAR(20) B VARCHAR(20) ); INSERT into A VALUES ('cat'), ('dog'),('cow'), ('horse') INSERT into A VALUES ('chicken'), ('steve'),('fish'), ('eel') 我想写一个查询,其中给定一个varchar,它将返回它存在的列名(如果两者都不存在,则返回一个空的var
CREATE table test(
A VARCHAR(20)
B VARCHAR(20)
);
INSERT into A
VALUES
('cat'), ('dog'),('cow'), ('horse')
INSERT into A
VALUES
('chicken'), ('steve'),('fish'), ('eel')
我想写一个查询,其中给定一个varchar,它将返回它存在的列名(如果两者都不存在,则返回一个空的varchar)。A和B没有任何相同的VARCHAR。我是mySql的新手
find('cat')返回'A'
find('eel')返回'B'
查找('goat')返回“”试试这个
SELECT
CASE WHEN A='input' THEN 'A'
WHEN B='input' THEN 'B'
ELSE '' END AS 'ColumnName'
FROM test WHERE A = 'yourString' OR B = 'yourString'
试试这个
SELECT
CASE WHEN A='input' THEN 'A'
WHEN B='input' THEN 'B'
ELSE '' END AS 'ColumnName'
FROM test WHERE A = 'yourString' OR B = 'yourString'
简单的案例应该:
select
case when A='input' then 'A'
when B='input' then 'B'
else 'None' end as 'ColumnName'
from Table
简单的案例应该:
select
case when A='input' then 'A'
when B='input' then 'B'
else 'None' end as 'ColumnName'
from Table
使用
WHERE
筛选到包含变量的行。然后是逻辑的CASE
语句
SELECT
CASE
WHEN A = [your varchar] THEN 'A'
WHEN B = [your varchar] THEN 'B'
END
FROM test
WHERE A = [your varchar] OR B = [your varchar]
注意:如果变量不存在,则不会返回任何行。如果变量多次出现,它将为每次出现返回一行。最后,如果在这两列中都找到,则此查询将只返回“A”,因为
CASE
语句是按写入顺序检查的。使用WHERE
筛选到包含变量的行。然后是逻辑的CASE
语句
SELECT
CASE
WHEN A = [your varchar] THEN 'A'
WHEN B = [your varchar] THEN 'B'
END
FROM test
WHERE A = [your varchar] OR B = [your varchar]
注意:如果变量不存在,则不会返回任何行。如果变量多次出现,它将为每次出现返回一行。最后,如果在这两列中都找到了,那么这个查询将只返回“A”,因为
CASE
语句是按写入顺序检查的
SET @c = 'Z';
SELECT
IfNull((SELECT 'A' FROM Test WHERE A = @c LIMIT 1), '')
+
IfNull((SELECT 'B' FROM Test WHERE B = @c LIMIT 1), '')
这样你只会得到一行,它将是'A','B','AB'(如果两者都有),''(如果没有)我会这样做
SET @c = 'Z';
SELECT
IfNull((SELECT 'A' FROM Test WHERE A = @c LIMIT 1), '')
+
IfNull((SELECT 'B' FROM Test WHERE B = @c LIMIT 1), '')
这样,您只会得到一行,它将是“A”、“B”、“AB”(如果两者都有),”(如果没有)更新您的问题添加真实的数据样本,并获得预期的结果请问您是否有迄今为止尝试过的sql?更新您的问题添加真实的数据样本,并获得预期的结果请问您是否有迄今为止尝试过的sql?