选择。。在Mysql中选择

选择。。在Mysql中选择,mysql,sql,logic,logical-operators,Mysql,Sql,Logic,Logical Operators,我正在尝试为mysql(搜索模块)编写一个查询,由于要在同一个表中执行select操作,我遇到了一些困难 我的问题是: (SELECT * FROM user WHERE `user_name` like '%TOM%' OR `user_name` like '%AN%' and `login_datetime` BETWEEN '2013-01-01 00:00:00' and '2013-02-31 23:59:59') OR (SELECT * FROM user WHERE

我正在尝试为mysql
(搜索模块)
编写一个查询,由于要在同一个表中执行select操作,我遇到了一些困难

我的问题是:

(SELECT * FROM user WHERE `user_name` like '%TOM%' OR `user_name` like '%AN%' 
and `login_datetime` BETWEEN '2013-01-01 00:00:00' and '2013-02-31 23:59:59')
    OR
(SELECT * FROM user WHERE `user_name` like '%PHP%' OR `user_name` like '%BA%' 
and `login_datetime` BETWEEN '2013-02-01 00:00:00' and '2013-03-31 23:59:59')
    AND
(SELECT * FROM user WHERE `user_name` like '%SUN%' OR `user_name` like '%MOON%' 
and `login_datetime` BETWEEN '2013-03-01 00:00:00' and '2013-04-31 23:59:59') 
    NAND
(SELECT * FROM user WHERE `user_name` like '%RAJ%' OR `user_name` like '%MUTH%' 
and `login_datetime` BETWEEN '2013-04-01 00:00:00' and '2013-06-31 23:59:59') 
    NOR
 (SELECT * FROM user WHERE `user_name` like '%BAG%' OR `user_name` like '%LAP%'
 and `login_datetime` BETWEEN '2013-05-01 00:00:00' and '2013-07-31 23:59:59')
上述查询是我的场景。。在无法更改的地方,我尝试为此编写一个查询

注:
  • 上述查询在单个表中执行
  • OR、NAND、NOR和操作可根据情况相互更改
  • 这取决于用户,他需要如何搜索
  • 我尝试了很多方法来实现逻辑,但我在所有阶段都面临问题

    检查我的尝试:

    在SQL中,可以按如下方式执行NAND和NOR操作:

    只需根据需要编辑以下查询

    SELECT * FROM user WHERE 
    (`user_name` like '%TOM%' OR `user_name` like '%AN%' and `login_datetime` BETWEEN '2013-01-01 00:00:00' and '2013-02-31 23:59:59') OR
    NOT ( --NOR
       (`user_name` like '%PHP%' OR `user_name` like '%BA%' and `login_datetime` BETWEEN '2013-02-01 00:00:00' and '2013-03-31 23:59:59') OR
       (`user_name` like '%SUN%' OR `user_name` like '%MOON%' and `login_datetime` BETWEEN '2013-03-01 00:00:00' and '2013-04-31 23:59:59')
    ) OR
    NOT ( --NAND
       (`user_name` like '%RAJ%' OR `user_name` like '%MUTH%' and `login_datetime` BETWEEN '2013-04-01 00:00:00' and '2013-06-31 23:59:59') AND
       (`user_name` like '%BAG%' OR `user_name` like '%LAP%' and `login_datetime` BETWEEN '2013-05-01 00:00:00' and '2013-07-31 23:59:59')
    )
    
    在上面的示例中,如果第一个括号之间的条件为true或(第二个条件或第三个条件)或(第四个条件和第五个条件),则返回所有记录


    注意:条件是指括号之间的子句。

    NAND和NOR操作链接是我之前的问题,我可以在哪里实现操作,但当它涉及多个查询时,它不起作用……你能帮我将此MySQL转换为条令吗。。结构。