首批通过分布式安全可靠测评,为关键业务系统打造
SQL 存在 || 符号导致 and 逻辑不生效
更新时间:2025-06-17 08:56
问题现象
同一字段使用 || 拼接 and 条件,未生效。
示例如下。
selext * from a where a.name like '% || b.name || %' and a.info like '%mactchview(%' and a.tab = xxxx;
解决方法
设置 sql_mode 的 PIPES_AS_CONCAT 这个参数,该选项决定将 || 符号当作字符串的连接操作符。
set sql_mode='PIPES_AS_CONCAT,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER'
或者可以将 SQL 改成 concat 函数来拼接。
适用版本
OceanBase 数据库 V4.x 版本。