LEFT函数非SQL标准,MySQL/SQL Server支持LEFT(col,n),PostgreSQL(9.1+)和SQLite/Oracle需用substring或substr;对NULL输入返回NULL;WHERE中使用易致全表扫描,应优先用LIKE;长度超限时LEFT安全,负数长度行为因库而异。LEFT 函数在不同数据库里的写法差异LEFT 不是 SQL 标准函数,MySQL 和 SQL Server 支持 LEFT(),但 PostgreSQL、SQLite、Oracle 默认不认------它们用 substring() 或 substr()。别一写 LEFT(col, 3) 就跑,先看库型。MySQL / SQL Server:LEFT(column_name, length) 直接可用PostgreSQL:substring(column_name from 1 for length) 或 left(column_name, length)(9.1+ 才支持)SQLite:substr(column_name, 1, length)(注意:起始位置是 1,不是 0)Oracle:substr(column_name, 1, length)LEFT 返回 NULL 的常见原因LEFT() 本身不会因参数为空报错,但它对 NULL 输入直接返回 NULL。如果你发现截取结果全空,大概率不是函数写错了,而是源字段本身就是 NULL 或空字符串。检查原始数据:SELECT column_name, LENGTH(column_name) FROM table WHERE ...安全写法加 COALESCE:LEFT(COALESCE(column_name, ''), 5)注意空格干扰:左侧带空格时,LEFT(' abc', 3) 得到的是 ' a',不是预期的 'abc'LEFT 在 WHERE 条件里用多了会拖慢查询对字段用 LEFT(column, N) 做过滤,基本等于放弃索引------除非你建了函数索引(如 PostgreSQL 的 CREATE INDEX ON t ((LEFT(col, 3)))),否则每次都要全表扫描。 文心快码 文心快码(Comate)是百度推出的一款AI辅助编程工具
相关推荐
#六脉神剑18 分钟前
myBuilder新版本(8月,Office文件预览、Oracle数据库支持)花青泽21 分钟前
5-数据库-SQL注入-联合查询-AND/OR绕过-day13veminhe35 分钟前
元数据索引有关的错一次旅行37 分钟前
AutoAWQ完整实战:MIT激活感知AWQ量化,模型显存减半、推理提速且精度无损踏着七彩祥云的小丑40 分钟前
忘记Redis是否安装过时查看GrowthDiary0071 小时前
算法题:寻找二维数组top k问题丙氨酸長鏈2 小时前
[Bukkit插件开发]手持发射器箭矢机枪 教学文档 面向Python/C#开发者入门Java与Bukkit APINontee2 小时前
设计模式:模板方法与策略,从“每个字都认识“到能说清它们在干嘛旋生万物2 小时前
电磁力 = 螺旋联络的 90° 旋转?麦克斯韦方程组的几何重构眞bilibili2 小时前
带团队后的日常思考(十七)