选择查询无法正常工作 - MYSQL

时间:2015-05-15 06:59:05

标签: php mysql mysqli

我的数据库中的数据类似于代表名称,案件的状态和案件的类型:

名称: new attar

声明: a:2:{i:0;s:13:"Massachusetts";i:1;s:13:"New Hampshire";}

案例类型 a:13:{i:0;s:1:"5";i:1;s:1:"7";i:2;s:1:"8";i:3;s:1:"9";i:4;s:2:"10";i:5;s:2:"11";i:6;s:2:"13";i:7;s:2:"14";i:8;s:2:"15";i:9;s:2:"16";i:10;s:2:"17";i:11;s:2:"18";i:12;s:2:"19";}

名称: Kevin Regan

声明: a:1:{i:0;s:13:"Massachusetts";}

案例类型 a:1:{i:0;s:2:"14";}

名称: Matthew Gendreau

声明: a:2:{i:0;s:13:"Massachusetts";i:1;s:13:"New Hampshire";}

案例类型 a:16:{i:0;s:15:"multiselect-all";i:1;s:1:"5";i:2;s:1:"2";i:3;s:1:"7";i:4;s:1:"8";i:5;s:1:"9";i:6;s:2:"10";i:7;s:2:"11";i:8;s:1:"1";i:9;s:2:"13";i:10;s:2:"14";i:11;s:2:"15";i:12;s:2:"16";i:13;s:2:"17";i:14;s:2:"18";i:15;s:2:"19";}

我使用的查询是:

SELECT
    *
FROM
    `web_attorney`
WHERE
    (
        `at_status` = '1'
        OR (
            `at_status` = '2'
            AND '2015-05-15' NOT BETWEEN `at_inactive_date_from`
            AND `at_inactive_date_to`
            AND `at_inactive_date_from` != ''
            AND `at_inactive_date_to` != ''
        )
    )
AND (
    `at_juris_states` LIKE '%Massachusetts%'
)
AND (
    `at_availability` LIKE '%Friday%'
)
AND (`at_cases` LIKE '%2%')
ORDER BY
    `at_has_mt` ASC
LIMIT 5

问题:

我想仅在cases type like 2的位置获取记录。

因为我在PHP序列化数组上使用类似,所以查询确实有效,但问题是它始终出现在cases types not 2 and 2的位置。两者都来自这个查询。

它还挑选了not case type 2的律师。就像new attar在qoutes case type 2中没有"2"一样,但在他的查询中,当他没有src时,他就会出现。{/ p>

更新

这是小提琴的例子:

http://sqlfiddle.com/#!9/e4c3c/1

1 个答案:

答案 0 :(得分:0)

标准化方法可能如下所示:

attorneys
attorney_id*, name
          2 , Kevin Regan
          3 , Matthew  Gendreau


attorney_state
attorney_id*, state*
          2 , Massachusetts
          3 , Massachusetts
          3 , New Hampshire

attorney_casetype
attorney_id,casetype
          2,      14
          3,       2 
          3,       7
          3,       8
          3,       9
          3,      10
          3,      11
          3,       1
          3,      13
          3,      14
          3,      15
          3,      16
          3,      17
          3,      18
          3,      19         

* =(组件)PRIMARY KEY