假设,我创建了一个表XYZ,其中包含具有值(10,24,6,41,27,11)的行“Age”。现在,如果我在查询中输入6,我想从行'Age'中获取6之后的所有值。| 年龄|| - -----|| 十、二十四、六、四十一、二十七、十一|选择值:6预期输出:四十一二十七十一有这样的疑问吗?
relj7zay1#
如果你的表有一列和六行,就没有办法确定地解决这个问题,因为DBMS的行没有顺序,除非你首先用ORDER BY子句(显式排序)指定一个子查询。如果您的表有一行和一列,并且您的值存储为逗号分隔值的字符串,则可以用途:
ORDER BY
SUBSTRING_INDEX
TRIM
SET @chosen_value := 6; SELECT TRIM(LEADING ', ' FROM SUBSTRING_INDEX(age, @chosen_value, -1)) AS output FROM tab
输出(对于@chosen_value = 6):
| 输出|| - -----|| 四十一二十七十一|查看演示here。
1条答案
按热度按时间relj7zay1#
如果你的表有一列和六行,就没有办法确定地解决这个问题,因为DBMS的行没有顺序,除非你首先用
ORDER BY
子句(显式排序)指定一个子查询。如果您的表有一行和一列,并且您的值存储为逗号分隔值的字符串,则可以用途:
SUBSTRING_INDEX
拆分字符串并只获取最后一部分TRIM
删除更多非必需字符输出(对于@chosen_value = 6):
| 输出|
| - -----|
| 四十一二十七十一|
查看演示here。