看似简单的SQL,实则就是简单

实验吧三道sql注入题目解题思路以及当中至少点整理(简单的SQL注入、简单的SQL注入2、简单的SQL注入) 0x00 最近学习CTF有一段时间了,下面将实验吧三题题目的简单SQL注入进行一定的整理, 0x01 简单的sql注入 做题的地址为: http://ctf5.shiyanbar.com/423/web/ 第一步:随便输入个数字load下url:http://ctf5.shiyanbar.com/423/web/?id=1发现是这个,老套路,既然题目提示是过滤 我们来各种试试到底过滤了 阅读详情

加班遇到一个SQL问题,本想把别人的SQL改下成SparkSQL,在YARN上运行,然而数据一直对不上。

原SQL

⚠️说明:a.id,b.id没有空的,数据1:1,b.name可能存在空的

select 
  a.id,
  b.id,
  b.name
from table_a a 
left join table_b b 
 on a.id = b.id and b.is_delete = 0 and b.name is not null
where 
exists(
  select 1 from  table_b c 
  where a.id = c.id and c.is_delete = 0
)

改后的

想法是:既然exists过滤了,为什么不直接inner join呢,于是乎:

select 
  a.id,
  b.id,
  b.name
from table_a a 
inner join table_b b 
 on a.id = b.id and b.is_delete = 0  

求助群友

问了下群友,区别是我一直以为left join 后 b.name is not null并没什么用,就没有带,我问群友,下面这两个SQL有什么区别:

select 
  *
from table_a a 
left join table_b b 
 on a.id = b.id and b.is_delete = 0 
where 
exists(
  select 1 from  table_b c 
  where a.id = c.id and c.is_delete = 0
)



select 
  *
from table_a a 
inner join table_b b 
 on a.id = b.id and b.is_delete = 0  

群友问AI的结果

这样的回答,不太对

自悟

然后仔细去品味这两个SQL有什么不同

-- (1)
select 
  a.id,
  b.id,
  b.name
from table_a a 
left join table_b b 
 on a.id = b.id and b.is_delete = 0 and b.name is not null
where 
exists(
  select 1 from  table_b c 
  where a.id = c.id and c.is_delete = 0
)


-- (2)

select 
  a.id,
  b.id,
  b.name
from table_a a 
inner join table_b b 
 on a.id = b.id and b.is_delete = 0  

数据table_a

id

1

2

3

数据table_b

id

name

id_delete

1

aa

0

2

bb

0

3

NULL

0

结论:

(1)sql计算后的会剔除掉 table_a 不符合 a.id = c.id and c.is_delete = 0 条件的数据。加上 name is not null。最后的数据会出现这两类情况:

a.id,null,null   # name为null,b表全部为空
a.id,b.id,b.name # 全部有值

a.id

b.id

b.name

1

1

aa

2

2

bb

3

NULL

NULL

(2)sql计算后中则会出现这两类情况:

a.id,b.id,null   
a.id,b.id,b.name # 全部有值

a.id

b.id

b.name

1

1

aa

2

2

bb

3

3

NULL

所以,count的时候是没有问题的,两个都可以,如果是取具体的值有所区别。

拓展

如果a.id b.id 是1:n 呢?

数据table_a

id

1

2

3

10

数据table_b

id

name

id_delete

1

aa

0

1

NULL

0

2

bb

0

3

NULL

0

-- (1)
select 
  a.id,
  b.id,
  b.name
from table_a a 
left join table_b b 
 on a.id = b.id and b.is_delete = 0 and b.name is not null
where 
exists(
  select 1 from  table_b c 
  where a.id = c.id and c.is_delete = 0
)

a.id

b.id

b.name

1

1

aa

2

2

bb

3

NULL

NULL

-- (2)

select 
   a.id,
  b.id,
  b.name
from table_a a 
inner join table_b b 
 on a.id = b.id and b.is_delete = 0 

a.id

b.id

b.name

1

1

aa

1

1

NULL

2

2

bb

3

3

NULL

所以,如果count的时候,1对n,相对于1:1是有区别的。

最后

(1)菜就要学,就要钻研。

(2)加班使人头疼,头脑不灵光。

(3)具体问题,具体分析。

SAP HANA 中的 CREATE OR REPLACE,一次看似简单、实则牵动对象契约的重新定义 CREATE OR REPLACE 在 SAP HANA 中用于安全更新存储过程与函数,避免因 DROP 与 CREATE 分离导致的权限丢失、依赖失效与多次重验证。它保留原有授权,仅在新定义中显式声明的属性生效,未指定项将采用默认值,故脚本需完整声明所有关键属性。其核心优势在于减少部署风险,但无法自动保证调用兼容性,尤其当参数签名、输出结构或安全上下文变更时,仍需严格评估依赖影响,建议通过版本化接口实现平滑演进。 阅读详情

相关推荐

从TL431光耦到集成隔离器:3种反激电源反馈方案全对比,你的项目到底该选哪个?

本文深入对比了反激电源设计中TL431光耦、集成隔离器和原边反馈三种主流反馈方案的优缺点,帮助开发者在电源设计中选择最适合的方案。从精度、成本、隔离等级等多维度分析,为反激式(Flyback)拓扑的应用提供实用选型指南。

weixin_30536513的博客 399

一句看似简单实则不宜的sql题

为什么80%的码农都做不了架构师?>>> ...

weixin_34417635的博客 134

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

奇怪的SQL问题+1

所以,这并不是一个奇怪的 SQL 问题,只是一个小疏忽。其实这种问题在编程上很常见,比如在 postman 调试的时候,分页数据写反了,pageSize写了1,pageNumer 写了 10 ,导致怎么查都没数据,怎么 debug 都看蒙了。因为疏忽产生了很多奇奇怪怪、五花八门的问题,然后花了很多时间去找答案,还找不到。最终沉下心来总的再过一遍才会发现,或者只能求助于同事。我知道有问题,但是深陷其中当局者迷,花了两个小时还没解决,同事 10s 就能看出来。

2401_83384536的博客 941

技术美术个人笔记(十六)——Houdini到UE的大地形

文章目录关于地形白模制作关于PDG流程 关于地形白模制作 用heightfield noise和笔刷刷出合适的mask做山形叠加: 用remap可快捷反转mask ,用来做平原地区的小型丘陵: 接着用clip切平最低处,用distort制造侵蚀等,对部分地区用笔刷进行微调拓宽峡谷: 用经过sweep打平的曲线以及裁切的各种多面体用heightfield_project投影制作河道和水池,用blur mask并remap的方法拓宽河道 用distort、erode制造合适的弯曲和侵蚀,同理可挖出月牙形

小谁的博客 3180

CGNS快速入门到实战(二):VS配置调用CGNS静态链接库

CGNS快速入门到实战这一系列分成三篇文章展开叙述,具体有:(一)CGNS静态链接库编译;(二)VS配置调用CGNS静态链接库;(三)CGNS文件及案例展示。本篇文章重点讲述VS配置调用CGNS静态链接库。

ahang_99的博客 2618

医院检验科的信息化系统(LIS)总藏着不少有意思的编程细节。今天咱们从真实项目里扒几个典型场景,看看用WPF+SQL怎么实现那些看似简单实则暗藏玄机的功能

这套系统最妙的地方在于用WPF的DataTemplate实现了检验科最爱的"所见即所得"布局。配合WPF的Blend SDK,可以做出血液指标超标时试管图标变红并抖动的效果,比单纯弹窗更符合检验人员操作习惯。比传统的关联表方式更适合频繁变更的检验项目配置,特别是当不同品牌仪器有特殊试管要求时,维护成本能降低60%以上。lis源码 LIS源码 医院lis系统源码 化验系统源码 检验系统源码 医院系统源码。lis源码 LIS源码 医院lis系统源码 化验系统源码 检验系统源码 医院系统源码。

2500_94292699的博客 730

2023东华大学机试OJ进阶版1-81题

先排序。每次找两个最小的数,把其中一个置为两数之和,并累加这个和值,另一个数置为-1,然后再排序,重复操作,直到只剩下一个数。105。

m0_49263811的博客 2798

面试中遇到这 3 个SQL问题,最容易掉坑里

面试中遇到这 3 个SQL问题,最容易掉坑里 面试中遇到这 3 个SQL问题,最容易掉坑里 最常见的读者问题:我应该如何准备SQL面试? 准备 SQL 面试时,我会认真地做尽可能多的事情,这样以来,写查询就变成了我的第二天性。我希望技术部分成为面试过程中比较容易的部分,这样我就可以集中精力与面试官进行交流,并将我的精力花在用白板书写我的方法和解决方案上。 根据我在技术面试中的经验,面试官测试的最大重点是理解代码的在做什么,如何考虑各种场景或边缘情况以及结果的含义。 与你在工作中编写的冗长而复杂的查询相比,S

weixin_47801274的博客 312

DataEase 未授权+远程代码执行漏洞复现(CVE-2025-49001、CVE-2025-49002)

DataEase 是一款开源的数据分析平台,提供丰富的数据可视化和分析功能,帮助用户轻松地进行数据探索和决策支持。近日,有关DataEase 被爆出多个漏洞,其中 CVE-2025-49001 是由于JWT校验机制错误导致攻击者可伪造JWT令牌绕过身份验证流程,CVE-2025-49002 是由于H2数据库模块没有严格过滤用户输入的JDBC连接参数,可使用大小写绕过补丁。攻击者可利用这些漏洞实现未授权代码执行,威胁用户数据和系统的安全。

李同學AI安全 1947

21天教你学会PCIe专栏(14)--安全性考虑

1.1 定义安全性(Security):安全性是指保护系统免受未经授权的访问、攻击和破坏,确保数据的机密性、完整性和可用性。1.2 重要性数据保护:保护敏感数据,防止数据泄露和篡改。系统防护:防止恶意攻击,确保系统的稳定性和可靠性。合规性:满足行业标准和法律法规的要求,避免法律风险。用户信任:提高用户对系统的信任度,增强市场竞争力。通过今天的学习,你应该对PCIe安全性的重要性和常见威胁有了深入的了解,掌握了实施安全措施的方法和工具,以及安全开发的最佳实践。

xiaoheshang_123的博客 850

sql(4):高难度查询问题

在工作中遇到了比较高难度的查询 查询用户记录中累计购买记录达到2w的订单记录 这个看似简单,使用sql解决难度很大

数据轨迹的专栏 679

YOLOv11【第二十章:模型迭代与生态闭环篇·第1节】在线增量学习——部署后新数据自动回流重训!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 433

那些看似离谱,实则奏效的数据防泄露“邪修”大法

黑客果然上钩,在尝试解密文件时,被隐藏的监控系统记下了攻击特征,企业据此更新了防火墙规则,还反追踪到了黑客的溯源信息。常规思路是谁需要给谁权限,但邪修偏要谁都拿不全:把核心数据拆成几块,不同部门各管一部分,比如销售部有客户联系方式,财务部有交易金额,法务部有合同条款,谁都无法单独获取完整信息。数据防泄露系统拥有行为审计功能,正好能为这招加持:系统可记录员工对诱饵文件的所有操作,包括访问时间、拷贝路径、传输方式等,一旦触发预设的风险规则(如夜间下载、批量传输),立即弹窗预警,让内鬼无处遁形。

Tipray2006的博客 1703

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

建表命名规范:看似简单却至关重要的注意事项

在MySQL中,若将表命名为“select”,执行查询该表的语句时,数据库会报错,认为“select”是查询语句的关键字,而非表名。对于存在关联关系的表,命名时最好能体现这种关系。在一对多关系里,“部门表”和“员工表”,“员工表”字段“department_id”表明它关联“部门表”,通过命名就能快速了解表间的关联逻辑,方便数据查询和维护。字段名也是同理,在“users”表中,存储用户邮箱的字段若叫“yz”,会让人摸不着头脑,“email”则表意清晰,降低误读和误用的概率,使代码逻辑更易理解。

kai176567的博客 540

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

看似一样实则天差地别的SQL条件(自记录)

一些发现的问题

gordem的博客 127

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

架构设计的反模式总结:那些看似正确、实则灾难的技术决策清单

架构反模式比设计模式更危险——因为设计模式需要刻意学习和应用,而反模式往往伪装成"行业最佳实践"悄悄进入项目。更危险的是,许多反模式在项目初期看起来是正确的,只有在系统达到一定复杂度后才暴露出灾难性的后果。2026 上半年,对 200+ 个生产系统的架构审计发现,排名前十的技术债务中有 7 个来自反模式而非功能缺陷。这些反模式的共同特征是:它们都曾经是"合理的设计决策",但缺少阶段性的重新评估。

qq_34803115的博客 5500

AI 看似听话,实则藏着致命漏洞

强模型则不同:在一个案例里,Gemini-3-Flash 生成了具有木马特征的代码,它自己也意识到这一点,但主动把它包装成“防御性监控工具” ,并添加了绕过杀毒软件的配置,同时假装一切正常。文件系统、数据库、权限控制等,这些“物理规则”用 Python 可执行代码实现,结果完全确定、可复现,不会产生幻觉。进入菜单界面后,可以逐步选择测试场景、目标模型、压力等级、诱惑等级,全程引导操作,实时在终端查看评测进度与结果。NPC 对话、社会反馈、场景叙事等本身就具有开放特性的内容,交给大模型灵活生成,保持真实感。

数据派THU 56

一道看似简单的SQL题目

网友提出的问题.一个表有3列(id name age)我相求age一样情况下,id不一样的。 原始数据如下: 1 x 10 2 y 11 3 x 10 2 x 11 5 z 11 要达到以下效果: 1 x 10 3 x 10 5 z 11 标准sql实际如下,适用于所有数据库,并且少量数据的情况.海量数据则需结合数据库特性实现. SET client_encoding = 'UTF8'; ...

kmblack1的专栏 292

看似简单的一道SQL面试题,你是否能够很快写出答案?

  近期在群里面看到了如下这样一个面试题目,这个题目其实难度不大,但是你是否能够很快写出这个答案来呢? 建表语句 create table student ( id varchar(20), name varchar(20), gender char(1), birth varchar(20), department varchar(20),...

数据分析与统计学之美 4092

编写SQL:看似简单,实际超难的SQL语句!

有表Tb的唯一字段Id(范围0-255) 1、查询一个未用Id 2、查询一个未用且最小的Id 3、查询一个未用且最大的Id 网上很多的SQL用下表会失败 Tb: ====================== Id  xxx 254  ccc 255  ... ======================  有邹建提供:  SQL code

在水一方 1860

今天工作中遇到的一个看似简单的SQL题

起始的两张表结构是这样的。 果实表 水果 颜色 苹果 Red 橙子 Orange 火龙果     颜色表 颜色 含义 Red 红色 Orange

aiouwen521的专栏 545

7-6 统计字符串中数字字符的个数_如何用SQL语句统计字符出现的次数?看似复杂的简单问题...

朋友们,我们在写SQL脚本时,经常会碰到一些个看似简单、却无从下手的问题,这类问题说大不大、说小也不小,经常会搞的我们很头痛。比如,如何使用SQL语句统计字符在某个字符串中出现的次数?这就是个看似简单的问题,遍查SQL支持的字符串函数(至少在MSSQL中),并没有发现有直接可用的函数。其实,绝大部分情况下,只要我们学会了变通,很多让我们苦恼的问题很容易就迎刃而解了。不信请您往下看。不变通也能解决问...

weixin_32916385的博客 1057

SQL练习——简单查询

2、补全右侧代码片段中 第二题 下 Begin-End 区间的代码,找出既是本科生导师又是硕士生导师的全部信息,包括id,name,sex。3、补全右侧代码片段中 第三题 下 Begin-End 区间的代码,找出是本科生导师但不是硕士生导师的全部信息,包括id,name,sex。1、补全右侧代码片段中 第一题 下 Begin-End 区间的代码,查询选修了‘2’号课程的学生的学号;1、补全右侧代码片段中 第一题 下 Begin-End 区间的代码,找出所有的导师的姓名和性别。

Yiyiii_的博客 1448
上一篇: 程序员入职第一天:新环境配置手册
下一篇: SQL:求同时在线人数问题
大数据左右手
博客等级 码龄9年 475粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值