当前位置: 首页 > 面试题库 >

如何获取MySQL中的数字列表?

井翰
2023-03-14
问题内容

我有一个电影数据库,我想要列出当年没有电影的年份。所以我只需要一个列表(1900 .. 2012),然后我就可以加入和加入而不是加入。

我有:

CREATE PROCEDURE build_years(p1 SMALLINT) 
BEGIN 
    CREATE TEMPORARY TABLE year (year SMALLINT(5) UNSIGNED); 
    label1: LOOP 
        INSERT INTO year VALUES (p1); 
        SET p1 = p1 + 1; 
        IF p1 > 2012 THEN LEAVE label1; END IF; 
    END LOOP; 
END

但这似乎是非SQL的,并且与运行Python代码来创建同一张表相比,仅略微减少了麻烦。我真的很喜欢那些不使用存储过程,不使用循环并且不使用实际表的东西,以这种关注的顺序。


问题答案:

几年前我也遇到过类似的问题。我的解决方案是:

1.顺序表

我创建了一个表格,该表格充满了从0到<所需的整数序列>>:

CREATE TABLE numbers (n INT);
INSERT INTO numbers VALUES (0),(1),(2),(3),(4);
INSERT INTO numbers SELECT n+5 FROM numbers;
INSERT INTO numbers SELECT n+10 FROM numbers;
INSERT INTO numbers SELECT n+20 FROM numbers;
INSERT INTO numbers SELECT n+40 FROM numbers;
etc.

它仅执行一次,因此可以从您的应用程序外部创建,甚至可以手动创建。

2.选择所需类型和范围的数据

对于整数,这很明显-即范围1..99:

SELECT n FROM numbers WHERE n BETWEEN 1 AND 99;

日期-从现在到+2天,间隔2小时:

SELECT date_add(now(),INTERVAL 2*n HOUR) FROM numbers WHERE n BETWEEN 0 AND 23;

因此,在您的情况下,可能是:

SELECT n+1900 AS n_year FROM numbers WHERE n BETWEEN 0 AND 112;

然后JOIN就可以了n_year



 类似资料:
  • 我有以下代码: LR是类的列表类型。在这个列表中,我有15个索引,例如在索引[0]中,我有: 现在在这个索引[0]中,我有两个int的变量end 88和start 96 在这个for循环中,我需要做的是: _fts是一个<代码>列表 我有两个错误: 错误31“系统”的最佳重载方法匹配。集合。通用。列表。添加(int)”有一些无效参数 和 错误32参数1:无法从“Lightings\u提取器”转换。

  • 本文向大家介绍如何获取MySQL表列的数据类型?,包括了如何获取MySQL表列的数据类型?的使用技巧和注意事项,需要的朋友参考一下 您可以在“ information_schema.columns”的帮助下获取MySQL表列数据类型。 语法如下- 要了解上述语法,让我们首先创建一个表- 应用以上语法获取MySQL列数据类型。查询如下- 以下是输出- 如果需要,请在数据类型之前的输出中也包括列名称。

  • 问题内容: 我有一些包含字母数字值的字符串输出。我只想从该字符串中获取数字。如何通过查询获取?我可以使用哪个MySql函数? 我的查询就像: 输出: 我想要输出像: 问题答案: 如果字符串以数字开头,然后包含非数字字符,则可以使用该函数,或者通过添加一个将其隐式转换为数字: 要从 任意 字符串中提取数字,您可以添加一个自定义函数,如下所示: 定义函数后,您可以在查询中使用它:

  • 问题内容: 之间有什么区别: 和 如何通过column-indexnumber获取数据?而不是通过索引字符串? 问题答案: 一个是列(又名系列),而另一个是DataFrame: 列“ b”(又名系列): [1]中具有列(位置)的子数据框: 注意:最好(而不是模棱两可)指定您是在谈论列名,例如[‘b’]还是整数位置,因为有时您可以将列命名为整数:

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 4年前关闭。 改善这个问题 我有一个表user_places像这样: 我正在尝试获取用户的最新recorded_date和他最常访问的地点的名称。 问题答案: 如果数据不是太大,则可以在MySQL中使用此技巧:

  • 问题内容: 我正在寻找一种列出数据库中所有视图的方法。 最初,我在MySQL论坛上找到并尝试了一个答案: 这怎么行不通,返回一个空集。(我知道他们在那里!) 这些也会失败: 为什么这不起作用? 问题答案: MySQL查询以查找数据库中的所有视图