千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:沈阳千锋IT培训  >  技术干货  >  为什么mysql having的条件表达式可以直接使用select后的别名?

为什么mysql having的条件表达式可以直接使用select后的别名?

来源:千锋教育
发布人:xqq
时间: 2023-10-19 04:24:45

一、为什么mysql having的条件表达式可以直接使用select后的别名

SQL语句的语法顺序:

FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> UNION -> ORDER BY

因此一般不能在having condition中使用select list中的alias。但是mysql对此作了扩展。

在mysql 5.7.5之前的版本,ONLY_FULL_GROUP_BY sql mode默认不开启。在5.7.5或之后的版本默认开启。

如果ONLY_FULL_GROUP_BY sql mode不开启,那么mysql对标准SQL的扩展可以生效:

1、允许在select list、having condition和order by list中使用没有出现在group by list中的字段。

此时mysql会随机选择没有出现在group by list中的字段的值。效果和使用ANY_VALUE()是相同的。

2、允许在having condition中使用select list中的alias


延伸阅读:

二、在数据库中存储图像的常用方法

在数据库中存储图像的常用方法是在存储数据之前将图像转换为base64数据。这个过程将增加 33% 的大小。或者,可以将图像直接存储为 BLOB;例如:

$image = new Imagick(“image.jpg”);

$data = $image->getImageBlob();

$data = $mysqli->real_escape_string($data);

$mysqli->query(“INSERT INTO images (data) VALUES (‘$data’)”);

然后用

显示图片

使用后一种方法,我们节省了 1/3 的存储空间。为什么在 MySQL 数据库中将图像存储为 base64 更常见?

关于将图像存储在数据库中的优缺点有很多争论,大多数人认为这不是一种实用的方法。无论如何,在这里我假设我们将图像存储在数据库中,并讨论这样做的优异方法。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

C语言中定义与声明的含义是什么?

2023-10-19

Oracle/MySQL数据库创建索引的原则是什么?

2023-10-19

java.sql.Date,java.sql.Time和java.sql.Timestamp什么区别?

2023-10-19

最新文章NEW

C++ 写即时通讯服务器用什么数据库比较合适?

2023-10-19

云数据库并发数和连接数是个怎样的关系?

2023-10-19

为什么有些低端云主机(1CPU,4G内存)也提供SQLServer,这大型数据库,能运行吗?

2023-10-19

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>