MySQL 比较运算符详解
(1)符号类型运算符
运算符 | 名称 | 作用 | 示例 |
---|---|---|---|
= | 等于运算符 | 判断两个值、字符串或表达式是否相等 | SELECT * FROM users WHERE age = 25 SELECT name FROM products WHERE category = 'Electronics' |
<=> | 安全等于运算符 | 安全地判断两个值、字符串或表达式是否相等(兼容NULL值) | SELECT * FROM employees WHERE salary <=> NULL SELECT * FROM orders WHERE coupon_code <=> 'DISCOUNT' |
<> | 不等于运算符 | 判断两个值、字符串或表达式是否不相等 | SELECT * FROM students WHERE gender <> 'F' SELECT id FROM logs WHERE status <> 200 |
!= | 不等于运算符 | 判断两个值、字符串或表达式是否不相等 | SELECT * FROM inventory WHERE quantity != 0 SELECT email FROM users WHERE deleted_at != NULL |
< | 小于运算符 | 判断前面的值是否小于后面的值 | SELECT * FROM products WHERE price < 100 SELECT * FROM events WHERE start_time < '2023-01-01' |
<= | 小于等于运算符 | 判断前面的值是否小于等于后面的值 | SELECT * FROM members WHERE age <= 18 SELECT * FROM tasks WHERE priority <= 3 |
> | 大于运算符 | 判断前面的值是否大于后面的值 | SELECT * FROM employees WHERE salary > 5000 SELECT * FROM articles WHERE views > 1000 |
>= | 大于等于运算符 | 判断前面的值是否大于等于后面的值 | SELECT * FROM candidates WHERE score >= 60 SELECT * FROM reservations WHERE guests >= 4 |
1. 等于运算符 =
- 作用:判断两个值、字符串或表达式是否相等
- 特点:
- 严格比较(NULL = NULL 返回NULL)
- 区分大小写(取决于数据库配置)
- 示例:
-- 数值比较 SELECT * FROM employees WHERE salary = 5000;-- 字符串比较 SELECT * FROM products WHERE name = 'Laptop';
2. 安全等于运算符 <=>
- 作用:安全地判断两个值/字符串/表达式是否相等(含NULL值)
- 特点:
- NULL <=> NULL 返回TRUE
- 其他情况与
=
相同
- 示例:
-- NULL值安全比较 SELECT * FROM customers WHERE phone_number <=> NULL;-- 常规比较 SELECT * FROM orders WHERE status <=> 'completed';
3. 不等于运算符 <>
或 !=
- 作用:判断两个值/字符串/表达式是否不相等
- 特点:
<>
是标准SQL语法!=
是兼容性语法- 两者功能完全相同
- 示例:
-- 使用<> SELECT * FROM students WHERE grade <> 'F';-- 使用!= SELECT * FROM inventory WHERE stock_quantity != 0;
4. 小于运算符 <
- 作用:判断前面的值是否小于后面的值
- 数据类型支持:
- 数值:
3 < 5
→ TRUE - 字符串:按字典序比较
- 日期:
'2023-01-01' < '2023-02-01'
→ TRUE
- 数值:
- 示例:
-- 数值比较 SELECT * FROM products WHERE price < 1000;-- 日期比较 SELECT * FROM events WHERE start_date < CURRENT_DATE;
5. 小于等于运算符 <=
- 作用:判断前面的值是否小于或等于后面的值
- 边界情况:
5 <= 5
→ TRUENULL <= 5
→ NULL
- 示例:
-- 年龄筛选 SELECT * FROM users WHERE age <= 18;-- 库存检查 SELECT * FROM warehouse WHERE quantity <= reorder_level;
6. 大于运算符 >
- 作用:判断前面的值是否大于后面的值
- 字符串比较规则:
'Apple' > 'Banana'
→ FALSE(按字符编码比较)- 大小写敏感(‘A’ > ‘a’ 结果取决于排序规则)
- 示例:
-- 薪资查询 SELECT name FROM employees WHERE salary > 10000;-- 时间范围 SELECT * FROM logs WHERE timestamp > '2023-06-01 00:00:00';
7. 大于等于运算符 >=
- 作用:判断前面的值是否大于或等于后面的值
- 特殊注意:
- 对NULL值的比较总是返回NULL
- 适用于范围查询的闭合区间
- 示例:
-- 分数筛选 SELECT student_id FROM exams WHERE score >= 60;-- 日期范围 SELECT * FROM reservations WHERE end_date >= '2023-12-31';
8.综合比较表
运算符 | NULL处理 | 适用场景 | 典型用例 |
---|---|---|---|
= | 返回NULL | 精确匹配查询 | 用户登录验证 |
<=> | 返回TRUE | 需要包含NULL值的比较 | 可选字段检查 |
<>/!= | 返回NULL | 排除特定值的查询 | 过滤无效记录 |
< | 返回NULL | 范围查询(开区间) | 查找历史数据 |
<= | 返回NULL | 范围查询(闭区间) | 统计截止某日期的数据 |
> | 返回NULL | 下限筛选 | 查找高价值客户 |
>= | 返回NULL | 下限筛选(含边界) | 达标数据筛选 |
(2)非符号类型运算符
运算符 | 名称 | 作用 | 示例 |
---|---|---|---|
IS NULL | 为空运算符 | 判断值/字符串/表达式是否为空 | SELECT B FROM table WHERE A IS NULL |
IS NOT NULL | 不为空运算符 | 判断值/字符串/表达式是否不为空 | SELECT B FROM table WHERE A IS NOT NULL |
LEAST | 最小值运算符 | 在多个值中返回最小值 | SELECT D FROM table WHERE C = LEAST(A,B) |
GREATEST | 最大值运算符 | 在多个值中返回最大值 | SELECT D FROM table WHERE C = GREATEST(A,B) |
BETWEEN | 区间运算符 | 判断值是否在两个值之间 | SELECT D FROM table WHERE C BETWEEN A AND B |
IN | 属于运算符 | 判断值是否为列表中的任意一个 | SELECT D FROM table WHERE C IN (A,B) |
NOT IN | 不属于运算符 | 判断值是否不在列表中 | SELECT D FROM table WHERE C NOT IN (A,B) |
LIKE | 模糊匹配运算符 | 判断值是否符合模糊匹配规则 | SELECT C FROM table WHERE A LIKE B |
REGEXP /RLIKE | 正则表达式运算符 | 判断值是否符合正则表达式 | SELECT C FROM table WHERE A REGEXP B |
一、空值判断运算符
1. IS NULL
- 功能:判断值/字符串/表达式是否为空
- 语法:
WHERE column IS NULL
- 特点:
- 唯一正确的NULL值判断方式(
= NULL
是错误语法) - 适用于所有数据类型
- 唯一正确的NULL值判断方式(
- 示例:
-- 查找未填写电话号码的用户 SELECT * FROM users WHERE phone IS NULL;
2. IS NOT NULL
- 功能:判断值/字符串/表达式是否不为空
- 语法:
WHERE column IS NOT NULL
- 应用场景:
- 数据完整性检查
- 有效记录筛选
- 示例:
-- 查找已激活的用户(email不为空) SELECT * FROM accounts WHERE email IS NOT NULL;
二、极值运算符
3. LEAST
- 功能:返回参数列表中的最小值
- 特点:
- 支持2个及以上参数
- 可比较数值/字符串/日期等类型
- 示例:
-- 获取最早日期 SELECT LEAST('2023-01-01', '2022-12-31', '2023-05-15');
4. GREATEST
- 功能:返回参数列表中的最大值
- 典型应用:
- 价格上限控制
- 有效期计算
- 示例:
-- 计算最终价格(不超过建议零售价) SELECT product_id, LEAST(price, msrp) AS final_price FROM products;
三、范围运算符
5. BETWEEN
- 功能:判断值是否在指定范围内(闭区间)
- 等效写法:
WHERE x >= a AND x <= b
- 注意事项:
- 总是先写小值再写大值
- 日期范围查询时包含边界
- 示例:
-- 查询2023年Q2订单 SELECT * FROM orders WHERE order_date BETWEEN '2023-04-01' AND '2023-06-30';
四、集合运算符
6. IN
- 功能:判断值是否在指定列表中
- 性能建议:
- 列表项超过100时考虑临时表
- 支持子查询
- 示例:
-- 查找特定品类商品 SELECT * FROM products WHERE category_id IN (1, 3, 5);
7. NOT IN
- 功能:判断值是否不在指定列表中
- NULL值陷阱:
- 当列表包含NULL时,所有比较返回NULL
- 建议配合
IS NOT NULL
使用
- 示例:
-- 排除测试账户 SELECT * FROM users WHERE user_id NOT IN (999, 1000);
五、模式匹配运算符
8. LIKE
- 通配符:
符号 功能 %
匹配任意数量字符 _
匹配单个字符 - 大小写敏感:取决于数据库配置
- 示例:
-- 查找J开头的姓名 SELECT * FROM employees WHERE name LIKE 'J%';
9. REGEXP
/RLIKE
- 功能:正则表达式匹配(两者完全等效)
- 常用模式:
^
:字符串开始$
:字符串结束[0-9]
:数字字符
- 示例:
-- 验证邮箱格式 SELECT * FROM contacts WHERE email REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$';
六、特殊说明
10. ISNULL
(MySQL特有)
- 注意:与
IS NULL
功能相同,但非SQL标准 - 建议:优先使用标准语法
IS NULL
相关文章:
MySQL 比较运算符详解
(1)符号类型运算符 运算符名称作用示例等于运算符判断两个值、字符串或表达式是否相等SELECT * FROM users WHERE age 25SELECT name FROM products WHERE category Electronics<>安全等于运算符安全地判断两个值、字符串或表达式是否相等&…...
No qualifying bean of type ‘XXX‘ available
没有某类型的bean可供使用 问题一解决方案错误问题配置类YuApiClientConfig依赖导入测试方法 问题二解决方法问题现场问题解决 问题一 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘com.transbit.yuapiclientsd…...
手搓一个 MCP Server 实现水质在线数据查询
随着人工智能技术的快速发展,如何将大语言模型(LLM)与实际业务场景结合,提供精准、可控的服务成为一个热门话题。MCP(Model Context Protocol)作为一种开放协议,为应用程序向 LLM 提供标准化的上下文接口,极大地简化了这一过程。本文将以构建一个水质在线查询 MCP 服务…...
neo4j初尝试
neo4j 下载并安装 这里以ubuntu 下载为例 打开neo4j官网,如下图所示,找到下载中心 选择 每个人可以根据自己的系统进行下载。然后解压tar -xf neo4j-community-2025.04.0-unix.tar.gz,如果不出意外的话,这里就可以直接输入命令启动了&#…...
数据分析业务拆解底层思维
业务拆解 分析前要有方法,从用户体验入手,将业务拆解,找到对象以及对象之间的关系。 电商平台卖的不是用户时间,不是流量,而是机会,而作为一个分析师就得分析机会在哪,帮助平台将机会更好的提…...
Linux运维——Vim技巧一
Vim技巧 一、优化重复操作1.1、 . 命令1.2、* 命令1.3、重复修改示例 二、删除单词(daw)三、对数字做算数运算四、操作符与动作五、插入模式5.1、插入模式下删除5.2、返回普通模式5.3、插入-普通模式5.4、不离开插入模式,粘贴寄存器中的文本5…...
第一节:OpenCV 基础入门-简介与环境搭建
一、OpenCV 是什么?为什么值得学习? OpenCV(Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习库,由英特尔实验室于1999年发起,现已成为全球计算机视觉领域最广泛使用的工具之一。它…...
前端面经-VUE3篇(二)--vue3组件知识(一)组件注册、props 与 emits、透传、插槽(Slot)
组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成一个层层嵌套的树状结构: 一、注册 Vue 组件本质上是一个可以复用的 自定义 HTML 元素,为了在其他组件中使用一…...
Python的简单练习
两数的最大公约数 def gcd(a, b):while b ! 0:a, b b, a % breturn a# 示例 a 36 b 60 print(f"{a} 和 {b} 的最大公约数是: {gcd(a, b)}") while b ! 0: while:是 Python 的 循环语句,意思是“当...的时候一直重复做某事”。 b ! 0&am…...
ipvsadm,是一个什么工具?
1. ipvsadm 是什么? ipvsadm(IP Virtual Server Administration)是 Linux 内核中 IPVS(IP Virtual Server) 模块的管理工具,用于配置和监控内核级的负载均衡规则。它是 Kubernetes 中 kube-proxy 在 IPVS …...
QT6 源(72):阅读与注释单选框这个类型的按钮 QRadioButton,及各种属性验证,
(1)按钮间的互斥: (2)源码来自于头文件 qradiobutton . h : #ifndef QRADIOBUTTON_H #define QRADIOBUTTON_H#include <QtWidgets/qtwidgetsglobal.h> #include <QtWidgets/qabstractbutton.h>…...
Qt 中实现观察者模式(Observer Pattern)
在 Qt 中实现**观察者模式(Observer Pattern)通常利用其内置的信号与槽(Signals & Slots)**机制,这是最符合 Qt 设计哲学的方式。以下是详细实现方法和关键点: —### 1. 观察者模式的核心思想- Subject(被观察者):维护一个观察者列表,在状态变化时通知观察者。- …...
Vue3源码学习5-不使用 `const enum` 的原因
文章目录 前言✅ 什么是 const enum❌ 为什么 Vue 3 不使用 const enum1. 📦 **影响构建工具兼容性**2. 🔁 **难以做模块间 tree-shaking**3. 🧪 **调试困难**4. 📦 **Vue 是库,不掌控用户配置** ✅ 官方推荐做法&…...
自己部署后端,浏览器显示久久未响应
CIDER地址写错了,应该要写成0.0.0.0/0 。。。。...
【RocketMQ NameServer】- NettyEventExecutor 处理 Netty 事件
文章目录 1. 前言2. NettyEventExecutor 线程3. NettyEvent 是怎么来的4. NettyEventExecutor 线程处理不同事件的逻辑4.1 IDLE\CLOSE\EXCEPTION - onChannelIdle4.2 CONNECT - onChannelConnect 5. 小结 本文章基于 RocketMQ 4.9.3 1. 前言 【RocketMQ】- 源码系列目录 上一…...
JAVA刷题记录: 递归,搜索与回溯
专题一 递归 面试题 08.06. 汉诺塔问题 - 力扣(LeetCode) class Solution {public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {dfs(A, B, C, A.size());}public void dfs(List<Integer> a, List<In…...
【进阶】C# 委托(Delegate)知识点总结归纳
1. 委托的基本概念 定义:委托是一种类型安全的函数指针,用于封装方法(静态方法或实例方法)。 核心作用:允许将方法作为参数传递,实现回调机制和事件处理。 类型安全:委托在编译时会检查方法签…...
推理能力:五一模型大放送
--->更多内容,请移步“鲁班秘笈”!!<--- 近日人工智能领域迎来了一波密集的模型发布潮,多家科技巨头和研究机构相继推出了具有突破性特点的AI模型。这些新模型在参数规模、计算效率、多模态能力以及推理能力等方面都展现出…...
数据库=====
创建数据库 1.直接创建数据库 语法:CREATE DATABASE [IF NOT EXISTS] 数据库名 ——[]表示内部内容可省略 2.指定字符集和排序规则方式创建数据库 语法:CREATE DATABASE[IF NOT EXISTS] 数据库名 CHARACTER SET 字符集 COLLATE 排序规则 示例:…...
VITA STANDARDS LIST,VITA 标准清单下载
VITA STANDARDS LIST,VITA 标准清单下载 DesignationTitleAbstractStatusVMEbus Handbook, 4th EditionA users guide to the VME, VME64 and VME64x bus specifications - features over 70 product photos and over 160 circuit diagrams, tables and graphs. The…...
npm pnpm yarn 设置国内镜像
国内镜像 常用的国内镜像: 淘宝镜像 https://registry.npmmirror.com 腾讯云镜像 https://mirrors.cloud.tencent.com/npm/ 华为云镜像 https://repo.huaweicloud.com/repository/npm/ CNPM(阿里系) https://r.cnpmjs.org/ 清华…...
互联网大厂Java面试:从Spring到微服务的技术探讨
场景:互联网大厂Java求职者面试 在一家知名的互联网大厂面试中,面试官王严肃正在面试一位名叫谢飞机的程序员。谢飞机以其独特的幽默感而闻名,但在技术面前,他的能力能否得到认可呢? 第一轮提问:核心技术…...
[machine learning] Transformer - Attention (二)
本文介绍带训练参数的self-attention,即在transformer中使用的self-attention。 首先引入三个可训练的参数矩阵Wq, Wk, Wv,这三个矩阵用来将词向量投射(project)到query, key, value三个向量上。下面我们再定义几个变量: import torch inpu…...
Java多语言DApp质押挖矿盗U源码(前端UniApp纯源码+后端Java)
内容: 这款Java多语言DApp质押挖矿盗U源码提供了完整的前端与后端开发框架,适用于区块链应用开发。系统包括: 前端源码(UniApp):采用UniApp开发,跨平台支持iOS、Android及H5。界面简洁…...
如何解决 403 错误:请求被拒绝,无法连接到服务器
解决 403 错误:请求被拒绝,无法连接到服务器 当您在浏览网站或应用时,遇到 403 错误,通常会显示类似的消息: The request could not be satisfied. Request blocked. We can’t connect to the server for this app o…...
CGI(Common Gateway Interface)协议详解
CGI(通用网关接口)是一种标准化的协议,定义了 Web服务器 与 外部程序(如脚本或可执行文件)之间的数据交互方式。它允许服务器动态生成网页内容,而不仅仅是返回静态文件。 1. CGI 的核心作用 动态内容生成&a…...
HybridCLR 详解:Unity 全平台原生 C# 热更新方案
HybridCLR(原 Huatuo)是 Unity 平台革命性的热更新解决方案,它通过扩展 Unity 的 IL2CPP 运行时,实现了基于原生 C# 的完整热更新能力。下面从原理到实践全面解析这一技术。 一、核心原理剖析 1. 技术架构 原始 IL2CPP 流程&am…...
电脑RGB888P转换为JPEG方案 ,K230的RGB888P转换为JPEG方案
K230开发板本身具备将RGB888P转换为JPEG的能力,但需要正确调用硬件或软件接口。以下是具体分析及解决方案: 一、K230原生支持性分析 1. 硬件支持 K230的NPU(神经网络处理器)和图像处理单元(ISP)理论上支持…...
基于SpringBoot+Vue实现的电影推荐平台功能三
一、前言介绍: 1.1 项目摘要 2023年全球流媒体用户突破15亿,用户面临海量内容选择困难,传统推荐方式存在信息过载、推荐精准度低等问题。传统推荐系统存在响应延迟高(平均>2s)。随着互联网的快速发展,…...
NHANES指标推荐:triglyceride levels
文章题目:Association between triglyceride levels and rheumatoid arthritis prevalence in women: a cross-sectional study of NHANES (1999-2018) DOI:10.1186/s12905-025-03645-y 中文标题:女性甘油三酯水平与类风湿性关节炎患病率之间…...
打印Activity的调用者
有时候我们会发现自己应用中的某个Activity被陌名奇妙的打开了,但是不知道是哪里的代码打开的,此时可以打印Activity的调用堆栈,在Activity的onCreate函数中添加如下代码: Arrays.stream(Thread.currentThread().getStackTrace()…...
深入解析 SqlSugar 与泛型封装:实现通用数据访问层
在现代软件开发中,ORM(对象关系映射)框架的使用已经成为不可或缺的部分,SqlSugar 是一款非常流行且强大的 ORM框架。它不仅提供了简单易用的数据库操作,还具备了高效的性能和灵活的配置方式。为了进一步提升数据库操作…...
普通 html 项目引入 tailwindcss
项目根目录安装依赖 npm install -D tailwindcss3 postcss autoprefixer 初始化生成tailwind.config.js npx tailwindcss init 修改tailwind.config.js /** type {import(tailwindcss).Config} */ module.exports {content: ["./index.html"], //根据自己的项目…...
Go小技巧易错点100例(二十七)
本期分享: 1. Go语言中的Scan函数 2. debug.Stack()打印堆栈信息 3. Go条件编译 正文: Go语言中的Scan函数 在Go语言中,Scan函数是一个强大的工具,它主要用于从输入源(如标准输入、文件或网络连接)读取…...
单细胞测序数据分析流程的最佳实践
单细胞测试数据分析流程是整个论文数据分析过程中相对固定的部分,有一定的标准流程,以下整理了发表论文的相关内容供简要了解,详细内容可以参照2019年发表的综述:Luecken MD, Theis FJ. Current best practices in single-cell RN…...
Elasticsearch:RAG 和 grounding 的价值
作者:来自 Elastic Toms Mura 了解 RAG、grounding,以及如何通过将 LLM 连接到你的文档来减少幻觉。 更多阅读:Elasticsearch:在 Elastic 中玩转 DeepSeek R1 来实现 RAG 应用 想获得 Elastic 认证吗?查看下一期 Elast…...
经典算法 求解台阶问题
求解台阶问题 题目描述 实现一个算法求解台阶问题。介绍如下: 对于高度为 n 的台阶,从下往上走,每一步的阶数为 1、2 或 3 中的一个。问要走到顶部一共有多少种走法。 输入描述 输入一个数字 N: 1 ≤ N ≤ 35表示台阶的高度 …...
伊甸园之东: 农业革命与暴力的复杂性
农业革命的开始 农业革命是人类历史上的第一次重大经济和社会变革,标志着人们从狩猎采集转向农耕。 该变革虽然进展缓慢,却彻底改变了人类的生活方式和社会结构。狩猎采集社会的特征 狩猎采集者生活在小规模、低密度的部落中,依赖于不稳定的自…...
MCP多智能体消息传递机制(Message Passing Between Agents)
目录 🚀 MCP多智能体消息传递机制(Message Passing Between Agents) 🌟 为什么要引入消息传递机制? 🏗️ 核心设计:Agent间消息传递模型 🛠️ 1. 定义标准消息格式 Ὦ…...
Deformable DETR模型解读(附源码+论文)
Deformable DETR 论文链接:Deformable DETR: Deformable Transformers for End-to-End Object Detection 官方链接:Deformable-DETR(这个需要在linux上运行,所以我是用的是mmdetection里面的Deformable DERT,看了一下源码基本是…...
游戏引擎学习第255天:构建配置树
为今天的内容设定背景 今天的任务是构建性能分析(profiling)视图。 目前来看,展示性能分析图形本身并不复杂,大部分相关功能在昨天已经实现。图形显示部分应该相对直接,工作量不大。 真正需要解决的问题,是…...
JavaScript性能优化实战之调试与性能检测工具
在进行 JavaScript 性能优化时,了解和使用正确的调试与性能检测工具至关重要。它们能够帮助我们识别性能瓶颈,精确定位问题,并做出有针对性的优化措施。本文将介绍一些常见的调试和性能检测工具,帮助你更好地分析和优化你的 JavaScript 代码。 1️⃣ Chrome DevTools Chro…...
C#VisionMaster算子二次开发(非方案版)
前言 在网上VisionMaster的教程通常都是按照方案执行的形式,当然海康官方也是推荐使用整体方案的形式进行开发。但是由于我是做标准设备的,为了适配原有的软件框架和数据结构,就需要将特定需要使用的算子进行二次封装。最直接的好处是&#…...
计算机总线系统入门:理解数据传输的核心
一、总线系统简介:计算机内部的交通网络 在计算机系统中,总线是指连接各个组件的一组共享信号线或传输通道,用于在系统内不同的硬件模块之间传递数据、地址、控制信号等信息。它类似于交通系统中的道路,帮助计算机各个部件&#…...
【Linux】Petalinux驱动开发基础
基于Petalinux做Linux驱动开发。 部分图片和经验来源于网络,若有侵权麻烦联系我删除,主要是做笔记的时候忘记写来源了,做完笔记很久才写博客。 专栏目录:记录自己的嵌入式学习之路-CSDN博客 目录 1 一个完整的Linux系统(针对Zynq) 1.1 PS部分 1.2 PL部分(若…...
提升办公效率的PDF转图片实用工具
软件介绍 这款专注于PDF文档处理的工具功能单一但实用,能够将PDF文件内容智能提取并自动拼接成长图,为用户提供便捷的图片化文档处理方案,无需复杂设置即可轻松上手。 简洁直观的用户界面 软件界面设计简洁清爽,没有任何多余…...
动态库与ELF加载
目录 动态库 ELF格式 ELF和后缀的区别 什么是目标文件 ELF文件中的地址--虚拟地址 动静态库和可执行文件 动态库ELF加载 为什么编译时静态库需要指定库?而运行时不需要指定库的,但是动态库需要呢? 总结: 动态库 动态库制作需要的.o文件需要使…...
算法每日一题 | 入门-顺序结构-数字反转
数字反转 题目描述 输入一个不小于 且小于 ,同时包括小数点后一位的一个浮点数,例如 ,要求把这个数字翻转过来,变成 并输出。 输入格式 一行一个浮点数 输出格式 一行一个浮点数 输入输出样例 #1 输入 #1 123.4输出 #1 …...
ROS2学习笔记|实现订阅消息并朗读的详细步骤
本教程将详细介绍如何使用 ROS 2 实现一个节点订阅另一个节点发布的消息,并将接收到的消息通过 espeakng 库进行朗读的完整流程。以下步骤假设你已经安装好了 ROS 2 环境(以 ROS 2 Humble 为例),并熟悉基本的 Linux 操作。 注意&…...
【Hot 100】 146. LRU 缓存
目录 引言LRU 缓存官方解题LRU实现📌 实现步骤分解步骤 1:定义双向链表节点步骤 2:创建伪头尾节点(关键设计)步骤 3:实现链表基础操作操作 1:添加节点到头部操作 2:移除任意节点 步骤…...