全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

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

发布时间:2023-10-13 08:02:25
发布人:xqq

一、为什么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 更常见?

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

#it技术干货

相关文章

App测试时常用的adb命令有哪些?

App测试时常用的adb命令有哪些?

2023-10-13
关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?

关系型数据库中的字段默认值、不可为空、少数索引约束的优缺点是什么?

2023-10-13
WebSocket怎么实现数据库表增加一条数据然后主动推送给客户端?

WebSocket怎么实现数据库表增加一条数据然后主动推送给客户端?

2023-10-13
PHP 连接数据库什么情况下才会用到持久链接mysql_pconnect()?

PHP 连接数据库什么情况下才会用到持久链接mysql_pconnect()?

2023-10-13

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取