可以使用 WHERE 关键字来指定查询条件。同样在编辑、删除操作时也可以使用 Where 来设置条件。
语法 :
where 条件 or/and 条件
示例
# 单条件
SELECT id as st_id, name FROM students WHERE id > 1 ;
# 多条件
SELECT id as st_id, name FROM students WHERE id > 1 and age >= 5;
MySQL 使用 LIKE关键字配合 % 进行模糊查询 :
like 'a%b'表示以字母 a 开头,以字母 b 结尾的任意长度的字符串。
like '%b' 表示以任意字符开头,以字母 b 结尾的任意长度的字符串。
like '%ab%' 表示包含 ab 字母的字符串。
示例 :
SELECT id as st_id, name FROM students WHERE name LIKE '%小%' ;
MySQL 使用 order by 关键字实现数据排序,语法 :
order by 字段名称 asc / desc
# asc 升序
# desc 降序
# 多个排序使用 , 分割
order by id desc, age asc
示例 :
SELECT id as st_id, name FROM students ORDER BY `age` asc, `name` desc ;
MySQL 使用 group by 关键字实现数据排序,语法 :
SELECT * FROM students GROUP BY class_id;
注意
从 MySQL 5.7.5 开始,默认开启了 ONLY_FULL_GROUP_BY,使用 group by 会报错 :
...in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
解决办法
1、先使用SQL查询sql_mode
select @@global.sql_mode
2、重新设置sql_mode,删除ONLY_FULL_GROUP_BY
set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
3、退出重进
# 退出
quit
# 再次登录(命令行模式)
mysql -u root -p
4、再次执行 SQL 命令
GROUP BY 关键字可以和 GROUP_CONCAT() 函数一起使用。GROUP_CONCAT() 函数会把每个分组的字段值都显示出来。
SELECT id, GROUP_CONCAT(`name`) FROM students GROUP BY class_id;