V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
DavidNineRoc
V2EX  ›  问与答

问一个筛选的问题,三个字段标识,怎么筛选?

  •  
  •   DavidNineRoc · 2018-03-28 14:32:19 +08:00 · 907 次点击
    这是一个创建于 2213 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT 表的结构是这样的:

    +-------------------+------------------+------+-----+---------+----------------+
    | Field             | Type             | Null | Key | Default | Extra          |
    +-------------------+------------------+------+-----+---------+----------------+
    | id                | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
    | name              | varchar(191)     | NO   |     | NULL    |                |
    | is_column         | tinyint(4)       | NO   |     | 0       |                |
    | is_hotel          | tinyint(4)       | NO   |     | 0       |                |
    | is_room           | tinyint(4)       | NO   |     | 0       |                |
    | created_name      | varchar(191)     | YES  |     | NULL    |                |
    | updated_name      | varchar(191)     | YES  |     | NULL    |                |
    | created_at        | timestamp        | YES  |     | NULL    |                |
    | updated_at        | timestamp        | YES  |     | NULL    |                |
    +-------------------+------------------+------+-----+---------+----------------+
    

    现在的问题在于is_column, is_hotel, is_room这三个字段,这三个字段总是互斥的! 现在界面是是这样的 QQ 截图 20180328142934.png 有三个按钮,每当我选了,这三个按钮可以任何组合点击,(都不亮,一个亮,两个亮,三个全亮)。 当我选择之后会去 AJAX 筛选条件,这时候我的 SQL 该怎么筛选? 现在只知道穷举。有什么其他技巧吗?


    ps:别人我为什么不改表,有些事情不是我能做主呀____

    1 条回复    2018-03-28 16:07:14 +08:00
    kokdemo
        1
    kokdemo  
       2018-03-28 16:07:14 +08:00
    ……如果三个是互斥的,为啥不做到一个字段里,1 是 column,2 是 hotel 这样……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5625 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 06:13 · PVG 14:13 · LAX 23:13 · JFK 02:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.