mysql - 在where子句中操作字符串

标签 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,不支持循环

最佳答案

您可以使用标准 SQL 来执行此操作:

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

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

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

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

关于mysql - 在where子句中操作字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14743465/

相关文章:

php - 在检查阿拉伯语或英语值之前用替换单词更新表中的行

MySQL 索引不起作用

mysql - 如何使用sql从具有不同列的两个表中获取不同的记录

sql - 有没有更好的方法从 Oracle 表中检索随机行?

sql - 找出两组记录之间的差异

MySQL查询动态 "Ranking rows"

mysql - 使用选择重复项的语句,通过单个 SQL 命令从表中删除重复项

php - 处理 Laravel 数据库查询中的空值?

C#:来自带有 MySQL 的字符串的 Unicode

mysql - 如何分配变量来选择和更新字段