MySQL/Oracle用逗号分割的id怎么实现in (逗号分割的id字符串)。find_in_set(`id`, ‘1,2,3‘) 函数,

1.MySQL

1.1.正确写法

sql 复制代码
select * from student where find_in_set(`s_id`, '1,2,3');  

1.2.错误示范

sql 复制代码
select * from student where find_in_set(`s_id`, '1,2 ,3');     -- 注意,中间不能有空格。1、3
select * from student where find_in_set(`s_id`, '1,2, 3');     -- 注意,中间不能有空格。1、2
select * from student where find_in_set(`s_id`, '1,2 , 3');    -- 注意,中间不能有空格。1

2.Oracle

2.1.方式一

sql 复制代码
select * 
from student 
where s_id in
	(
	select regexp_substr('1,2,3', '[^,]+', 1, level) as value
	from dual
	connect by regexp_substr('1,2,3', '[^,]+', 1, level) is not null
	);

2.2.方式二

sql 复制代码
-- 在Oracle SQL中,没有内置的FIND_IN_SET函数,但是你可以使用一些技巧来实现类似的功能。以下是一个示例:

SELECT *
FROM student
WHERE ',' || '1,2,3' || ',' LIKE '%,' || s_id || ',%';
相关推荐
周末也要写八哥38 分钟前
数据库安装 | SQL Server2022安装教程及网盘下载地址
数据库
李燚1 小时前
erlang_migrate 架构拆解:behaviour 驱动的多数据库迁移引擎
数据库·postgresql·架构·erlang·migrate·behaviour·erlang_migrate
Jinkxs1 小时前
PostgreSQL - 全文检索的开启与基础使用
数据库·postgresql·全文检索
情绪总是阴雨天~1 小时前
检索增强生成 (RAG) 四大检索策略详解
数据库·prompt·检索增强
学Linux的语莫1 小时前
redis的数据类型和使用
数据库·redis·缓存
IvorySQL2 小时前
PGv19预发布对现有生产系统的隐患思考,MySQL别看!
数据库·postgresql·开源
点灯小铭2 小时前
基于单片机的鱼缸监测与远程管理系统设计
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
Amnesia0_02 小时前
MYSQL表的约束
数据库·mysql
C137的本贾尼2 小时前
锁的分类:表锁、行锁、页锁与意向锁
数据库
Full Stack Developme2 小时前
SQL 执行顺序 及 全部关键字
数据库·sql