首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL中的generate_series

MySQL中的generate_series
EN

Stack Overflow用户
提问于 2011-09-21 04:15:29
回答 1查看 3.7K关注 0票数 2

PostgreSQL在MySQL中的generate_series()等价物是什么?

如何将此查询转换为MySQL?

代码语言:javascript
运行
复制
select substr('some-string', generate_series(1, char_length('some-string')))

PostgreSQL的输出示例:

代码语言:javascript
运行
复制
some-string
ome-string
me-string
e-string
-string
string
tring
ring
ing
ng
g

select generate_series(1, char_length('some-string'))

1
2
3
4
5
6
7
8
9
10
11

最终解决方案:

代码语言:javascript
运行
复制
CREATE TABLE `numberlist` (
 `id` tinyint(4) NOT NULL AUTO_INCREMENT,
 PRIMARY KEY (`id`)
)

INSERT INTO `numberlist` values(null)
(repeat the above query the maximum string you need)

SELECT substr('somestring', id) 
FROM numberlist 
WHERE id <= character_length('somestring')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-21 05:27:04

这是概念,但我没有在这个盒子上安装mySQL。您将需要创建一个整数表,使用自动增量。数字表通常是一个在数据库中可用的方便的表,并且只需要创建一次

代码语言:javascript
运行
复制
create table NumberList (id MEDIUMINT NOT NULL AUTO_INCREMENT,fill char(1))

declare @x INT
set @x=0
while @x < 20
begin
    insert into numberList values(null)
    Set @x = @x+1
end 

然后,使用LIMIT子句连接如下所示的表

代码语言:javascript
运行
复制
select substr('somestring',id) 
from numberlist
limit len('somestring')

这是我用SQL server写的,但是转换成mySQL应该不会太难……

下面的代码应该可以在mySQL中运行

代码语言:javascript
运行
复制
DECLARE xx INT DEFAULT 0;
  WHILE xx < 20 DO
    insert into numberList values(null)        
    SET xx = xx + 1;
 END WHILE;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7491251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档