在where子句中操作字符串

时间:2013-02-07 04:17:50

标签: mysql sql

我有一个变量list_name,其中包含以':'

分隔的名称列表
list_name=(rahul:john:steve) => list_name is of type 'string'

该列表包含1000个名称 无法更改list_name,因为我们从其他部门/公司获取

想要编写一个查询来实现如下所示的目的,但是对于该字符串操作将是必需的,即根据分隔符':'

从list_names中提取名称

从学生中选择roll_no 其中名称为rahul或john或steve (问题部分)

建议在sql中使用一些字符串操作技术从字符串中提取名称

PS:我使用专有的sql并且不支持循环

1 个答案:

答案 0 :(得分:1)

您可以使用以下标准在SQL中执行此操作:

 select roll_no
 from students
 where concat(':', list_name, ':') like concat('%:', names, ':%')

在某些数据库中,其中可能写为:

 where ':'+ list_name+':' like '%:'+names+':%'

 where ':'|| list_name||':' like '%:'||names||':%'