mysql - MySQL 中的generate_series

标签 mysql sql function postgresql generate-series

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/

相关文章:

最近 12 个月的 SQL 函数

mysql - 使用准备好的语句和变量的 SQL 语法错误

sql - 用不存在的行完成表格

php - 分面搜索的一些问题

用于显示数据的 asp.net MVC GridView 替代方案

java - 在文本字段中验证 PIN 码

scala - `A => List[B]` 可以转换为 `List[A => B]` 吗?

mysql - 循环遍历mysql表数据

php - MYSQL查找外键不在相关表中的行

javascript - 具有点击率的动态 Ajax MySQL 列表