嵌套的SQL查询将不会执行

时间:2013-08-05 14:11:29

标签: mysql nested

无法执行此嵌套查询。仅供参考:所有表名和列名以及搜索字符串都是动态提供的。

SELECT * from (
    SELECT * from employee WHERE 
        empno like '%al%' 
        OR name like '%al%' 
        OR job like '%al%' 
        OR boss like '%al%' 
        OR hiredate like '%al%' 
        OR salary like '%al%' 
        OR comm like '%al%' 
        OR deptno like '%al%' )
    WHERE name like 'al%' 
    union all SELECT * from 
    (SELECT * from employee WHERE
     empno like '%al%' 
        OR name like '%al%' 
        OR job like '%al%' 
        OR boss like '%al%' 
        OR hiredate like '%al%' 
        OR salary like '%al%' 
        OR comm like '%al%' 
        OR deptno like '%al%' ) 
    WHERE name like '%al%' and name not like 'al%'

我想在员工表的所有列(empno,name,job,boss,hiredate等)中搜索字符串(例如“al”)。但是结果应该显示在“name”列中。 结果应按以下顺序显示: 1)首先在名称栏中以'al'开头的员工名称 然后 2)名称栏中任何位置包含“al”的员工的“姓名”。

1 个答案:

答案 0 :(得分:0)

选择*为员工WHERE名称,如'al%' UNION select *来自员工WHERE 像'%al%'这样的名字 UNION select *来自员工WHERE   员工喜欢'%al%' 或像'%al%'这样的工作 或老板喜欢'al%' 或雇用'%al%' 或deptno喜欢'%al%'