LIKE查询

  1. SELECT * FROM table_name WHERE condition LIKE condition;

%

SQL LIKE 语句中,我们可以使用百分号%字符阿里表示任意字符。没有使用%,此时LIKE就相当于=。
名字中含“孙”

  1. SELECT
  2. *
  3. FROM
  4. timi_adc
  5. WHERE
  6. hero_name LIKE '%孙%';
  7. // '孙%' 孙开头
  8. //'%孙' 孙结尾

_

  1. SELECT
  2. *
  3. FROM
  4. timi_adc
  5. WHERE
  6. hero_name LIKE '_尚香';

_表示一个任意字符。

AND & OR

  1. SELECT * FROM table_name WHERE conditionA AND/OR condtionB;

查询胜率为50%~51%或者胜率低于47%的英雄。

  1. SELECT
  2. *
  3. FROM
  4. timi_adc
  5. WHERE
  6. win_rate > 0.5
  7. AND win_rate < 0.51
  8. OR win_rate < 0.47;

还可以加上()

  1. SELECT
  2. *
  3. FROM
  4. timi_adc
  5. WHERE
  6. (
  7. win_rate > 0.5
  8. OR win_rate < 0.47
  9. )
  10. AND win_rate < 0.51;

IN/NOT IN

  1. SELECT * FROM table_name WHERE column IN (condtionA,condtionB);
  1. SELECT
  2. *
  3. FROM
  4. timi_adc
  5. WHERE
  6. fever IN ('T0', 'T3');

NOT IN / NOT LIKE

非T0英雄

  1. SELECT
  2. *
  3. FROM
  4. timi_adc
  5. WHERE
  6. fever NOT IN ('T0');

查询名字不带孙的英雄

  1. SELECT
  2. *
  3. FROM
  4. timi_adc
  5. WHERE
  6. hero_name NOT LIKE '%孙%';

查询名字里含公,孙,马 ban率最低的

  1. select
  2. *
  3. from
  4. timi_adc
  5. where
  6. hero_name like '%公%'
  7. OR hero_name like '%孙%'
  8. OR hero_name like '%马%'
  9. ORDER BY
  10. ban_rate
  11. Limit
  12. 1;

NULL值的处理

不可以使用= NULL 或者 !=NULL NULL=NULL 会返回NULL

  1. SELECT field_name1,field_name2
  2. FROM table_name
  3. WHERE field_name2 IS NOT NULL/IS NULL;
  1. SELECT
  2. id,
  3. mobile
  4. FROM
  5. student
  6. WHERE
  7. mobile IS NOT NULL;

名字带孙或武,且手机,成绩不为空

  1. SELECT
  2. *
  3. FROM
  4. student
  5. WHERE
  6. mobile IS NOT NULL
  7. AND grade IS NOT NULL
  8. AND (
  9. `name` LIKE '%孙%'
  10. OR `name` LIKE '%武%');