# 筛选最大生命值大于6000,最大法力值大1700的英雄,然后按照二者之和从高到低进行排序
SELECT NAME
,
hp_max,
mp_max
FROM
heros
WHERE
hp_max > 6000
AND mp_max > 1700
ORDER BY
( hp_max + mp_max ) DESC;# 查询最大生命值加最大法力值大于8000的英雄,或者最大生命值大于6000并且最大法力值大于1700的英雄
SELECT NAME
,
hp_max,
mp_max
FROM
heros
WHERE
( ( hp_max + mp_max ) > 8000 OR hp_max > 6000 AND mp_max > 1700 )
ORDER BY
( hp_max + mp_max ) DESC;# 查询主要定位或者次要定位是法师或是射手的英雄,同时英雄的上线时间不在2016-01-01到2017-01-01之间
SELECT NAME
,
role_main,
role_assist,
hp_max,
mp_max,
birthdate
FROM
heros
WHERE
( role_main IN ( "法师", "射手" ) OR role_assist IN ( "法师", "射手" ) )
AND date( birthdate ) NOT BETWEEN "2016-01-01"
AND "2017-01-01"
ORDER BY
( hp_max + mp_max ) DESC;# 使用通配符过滤- 查询英雄名中包含“太”字的英雄 字符串搜索区分大小写
SELECT NAME
FROM
heros
WHERE
NAME LIKE "%太%";# 如果想要匹配单个字符,请使用下划线()通配符
# (%)和()的区别子啊与,(%)代表零个或多个字符,而(_)只代表一个字符
# 查询英雄名除了第一个字以外,包含"太"字的英雄有哪些
SELECT NAME
FROM
heros
WHERE
NAME LIKE "_%太%";# 查询主要定位是坦克或者战士,并且次要定位不为空,同时满足最大生命值大于8000或者最大法力小于1500的英雄,并且按照最大生命和最大法力之和从高到低的顺序进行排序
SELECT NAME
,
role_main,
role_assist,
hp_max,
mp_max
FROM
heros
WHERE
role_main IN ( "坦克", "战士" )
AND role_assist IS NOT NULL
AND ( hp_max > 8000 OR mp_max < 1500 )
ORDER BY
( hp_max + mp_max ) DESC;