我想知道是否有一种方法可以从具有逗号分隔值的列中进行选择。
例如,该列具有以下数据:(“ 16”,“ 20”,“ 27”,“ 2”,“ 3”)
是否可以执行以下操作:
-从表中获取值16:-
select from table where value = '16'
或者可以在其中使用?
select from table where value in '16'
答案 0 :(得分:1)
如果列value
包含单引号的数据,如下所示:
'16', '20', '27', '2', '3'
然后您可以使用运算符like
:
select * from table where value like '%''16''%'
如果没有没有单引号并且数据如下:
16, 20, 27, 2, 3
然后:
select * from table
where ',' || replace(value, ' ', '') || ',' like '%,16,%'
如果逗号分隔值之间没有空格,那么您就不需要replace()
:
select * from table where ',' || value || ',' like '%,16,%'
答案 1 :(得分:0)
如果值列具有单引号sql fiddle here
,请使用以下内容 select * from tt where REGEXP_LIKE(value1,'(''16'',)[^,]+');
如果没有单引号,请使用下面的sql fiddle here
select * from tt where REGEXP_LIKE(value1,'(16,)[^,]+');
答案 2 :(得分:0)
数据库架构可能违反了first normal form