MySQL 中 PostgreSQL 的 generate_series()
等效项是什么?
如何将此查询转换为 MySQL?
select substr('some-string', generate_series(1, char_length('some-string')))
PostgreSQL 的示例输出:
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
最终解决方案:
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')
最佳答案
这是概念,但我没有在这个盒子上安装 mySQL。您将需要使用自动增量创建一个整数表。数字表格通常是数据库中可用的方便表格,并且只需要创建一次
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 子句连接该表,如下所示
select substr('somestring',id)
from numberlist
limit len('somestring')
我在 SQL Server 中编写了这个,但转换为 mySQL 应该不会太困难...
下面的代码应该在 mySQL 中工作
DECLARE xx INT DEFAULT 0;
WHILE xx < 20 DO
insert into numberList values(null)
SET xx = xx + 1;
END WHILE;
关于mysql - MySQL 中的generate_series,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7491251/