mysql - 如何使用 select 的输出作为 MySQL 函数的输入?

标签 mysql function select

我想使用 MySQL 中的一个函数。该函数用于分割字符串,并根据分隔符获取字符串、分隔符以及我要输出的元素编号。

CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');

我可以通过以下方式使用该功能:

SELECT SPLIT_STR('a:b', ':', 1);

它将输出“a”。

但是,为了使用以下 MySQL 命令的输出作为我的函数的输入字符串,我需要做什么?

select gene from enhancer limit 1;

非常感谢任何帮助!

最佳答案

首先,您不需要在 MySQL 中使用自己的分割字符串函数。函数 substring_index() 是内置的。

如果你想将列传递给字符串,你可以这样做:

select substring_index(gene, ':', 1)
from enhancer
limit 1;

获取第n个值:

select substring_index(substring_index(gene, ':', <n>), ':', -1)
from enhancer
limit 1;

关于mysql - 如何使用 select 的输出作为 MySQL 函数的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30844909/

相关文章:

c - 为什么 return 语句适用于 void 作为 C 中的返回类型?

php - 低内存下的Mysql性能

java - 将数组传递给函数时.class 出现预期错误

javascript - 带有 json 数组的列数据 c3.js

c - 用于在 C 中对数组进行排序的内置函数

javascript - 在另一个 <select> 框中选择时禁用 <select> 选项

javascript - 如何获取Javascript选择框的选定文本

SQL获取不同行的时间

mysql - Sequelize 区分大小写查询——使用 BINARY

jquery - Laravel:数据表的 SQLSTATE[23000] 错误