我希望查询应该返回员工的所有结果,无论员工的姓名是不是在不同的列中

Posted

技术标签:

【中文标题】我希望查询应该返回员工的所有结果,无论员工的姓名是不是在不同的列中【英文标题】:i want query should return the all result of employee no matter if the name of employee is in different column我希望查询应该返回员工的所有结果,无论员工的姓名是否在不同的列中 【发布时间】:2016-04-05 11:07:50 【问题描述】:

如果我要在 where 子句中提到的值在不同的列中,我希望结果应该返回所有员工的详细信息。

为此,我编写了如下查询:-

select * 
from claim_master 
where full_name='Trevor DSouza' in (select * from claim_master);

即,如果'Trevor DSouza' 名称存在于不同的列中,我希望查询应该显示结果。 但结果显示为:-

错误代码:操作数应包含 1 列

请帮我解决我的错误。请

【问题讨论】:

我不明白你为什么认为你需要 IN 子句。 “任何列”的要求是错误的。也许您正在考虑非结构化文档和 SOLR 之类的索引解决方案,而不是 mysql 关系数据库 先生,如果 'Trevor DSouza' 值在其他列中,我们如何搜索它。我的意思是,如果“Trevor DSouza”在其他列中,它也会返回结果。我想在表格中搜索这个值,不想提及列名 【参考方案1】:

你可以试试这个

您必须在查询中提及列名,它不会像您上面写的那样工作。您可以使用下面的 sn-p 并尝试:

select 
    * 
    from 
    claim_master 
    where full_name like 'Trevor DSouza' 
    OR last_name like 'Trevor DSouza' 
    OR other_column_name like 'Trevor DSouza';

只需在 or 条件中添加列名。

【讨论】:

以上是关于我希望查询应该返回员工的所有结果,无论员工的姓名是不是在不同的列中的主要内容,如果未能解决你的问题,请参考以下文章

17/12/6 子查询

用一条SQL语句查询出所有员工姓名的字母前三位

SQL查询以递归方式获取经理下所有员工的姓名

提供雇用超过 3 名员工的招聘人员的姓名以及未被招聘人员雇用的员工数量的查询

sql查询员工编号为2001的员工所下的订单编号、内容及员工姓名信息

对数据进行限定和排序