问题标签 [mysql-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1095 浏览

php - 在 PHP 中使用游标执行存储过程

我有一个存储过程,我试图从我的 php.ini 调用。这是存储过程:

直接在mysql workbench中,调用就可以了。在 php 中,它不起作用。这是我的php:

像这样连接,我收到以下错误

$data = $result->fetch_assoc()我将我print_r的问题追溯到mysqli_result Object ( [current_field] => 0 [field_count] => 9 [lengths] => [num_rows] => 0 [type] => 1 ). 我得出的结论是它不起作用,因为[num_rows] => 0.

现在,回到我的存储过程,我删除了所有提到的游标并将其替换为硬编码值,它在工作台和 php 中都有效。我已经验证了通过 php 连接的用户有权限,连接是打开的,并且相同的代码可以执行其他存储过程(那些不包括游标的)。这是否意味着我不能在 php 调用的存储过程中使用游标?有没有光标的替代品?我是否在我的 php 语法中遗漏了一些处理游标的内容?

0 投票
3 回答
378 浏览

mysql - mysql分组排名与领带

所以我在这样的表中有数据:

我如何根据总数对每组的 id 进行排名,并在出现平局时给予相同的排名?

我在下面尝试了这个解决方案,但它没有处理关系。

预期的

0 投票
0 回答
65 浏览

mysql - 用户定义变量将项目排名为最新

我正在尝试从特定球队的球员最近的 20 个得分中提取信息。我查看球队名单,并提取这些球员参加过的所有比赛的相关信息。我想要每个球员最近的 20 场比赛。我在使用 LIMITs 和 GROUPs 时遇到了困难。我在这里阅读了关于使用用户定义的变量创建排名列,然后查询相关排名的答案,但我无法让排名部分起作用。

它目前将每一行都列为 1。

逻辑应该是,对于玩家来说,它会将最近的日期排为 1,然后随着行结果及时倒退而向上计数。新玩家的排名应重置为 1,然后根据需要再次计数。然后我会查询结果并限制在 <21 的排名。

任何帮助是极大的赞赏!

0 投票
2 回答
41 浏览

mysql - How can I speed up this query with an aliased column?

So I found this code snippet here on SO. It essentially fakes a "row_number()" function for MySQL. It executes quite fast, which I like and need, but I am unable to tack on a where clause at the end.

Adding in where iterator = 875 yields an error.

The snippet above executes in about .0004 seconds. I know I can wrap it within another query as a subquery, but then it becomes painfully slow.

The snippet above takes over 10 seconds to execute.

Anyway to speed this up?

0 投票
1 回答
231 浏览

mysql - MySQL查询以获得特定等级

我有一个关于 MySQL 数据库的查询,我得到这个结果:

我从中获得此结果的查询如下(我隐藏了主查询,以免编写太多代码):

但是,而不是上面的结果,我想调整 Rank 列(和我的查询),根据重复的先前行增加它,即:

等等。你能帮我得到这个结果吗?

0 投票
1 回答
1968 浏览

php - 嵌套子查询中的 MySQL 变量

目前我正在开发一种包含课程和考试模块的电子学习平台。这个想法是课程之后是考试。用户可以解决几次考试(取决于考试表中的设置)。我有一个模块,我需要确定是否应将用户重定向到考试或统计页面。如果用户没有使用他的所有尝试,他应该被重定向到考试,否则到统计。

所以这是我的查询(有点简化,因为外部查询的所有条件和连接在这里都无关紧要),它应该确定去哪里。

出于测试原因,我将课程限制为静态值,但在实际使用中需要查找大量课程。

最后 - 我发现这适用于本地主机,但不适用于服务器,尽管 MySQL 版本相同。我想知道是否有一些设置会阻止我的查询正确执行。另外我想知道你有什么建议,也许我的想法不好,我可以重建那个查询?

0 投票
3 回答
491 浏览

mysql - 为什么涉及用户变量的表达式的评估顺序未定义?

MySQL 手册中,不能保证以下查询的输出始终相同。


输出:

引用手册:

但是,涉及用户变量的表达式的求值顺序是未定义的;

我想知道背后的故事。

所以我的问题是:为什么涉及用户变量的表达式的评估顺序是未定义的?

0 投票
1 回答
141 浏览

mysql - 将 SQL 限制应用于特定列,而不是完整的结果集

在下面给出的结果集中,其中有 2 个唯一用户 (id),并且可能有更多这样的用户从查询中出来:

在此处输入图像描述

这是多连接查询:

假设此查询中有 50 个这样的用户。如果我出于分页目的应用 10 的限制,我将不会获得 10 个用户,而只会获得前 10 行,其中可能只有 1 或 2 个用户数据。

Q1:如何根据特定列设置限制?

Q2:使用 SQL 限制子句是否是正确的分页方法,也可以提高最终用户的响应时间?如果不是,那么在这种情况下还能使用什么?

0 投票
1 回答
79 浏览

mysql - 根据属于组集的不同列的最大值创建排名列

我需要根据该 part_id 的 build_steps 的 MAX 值创建一个排名列,其中每个不同的 part_id 的排名都与 order_id 相关联。每当迭代新的 order_id 时,都应该重新启动排名。

我有以下小提琴,但它没有正确创建排名。

http://sqlfiddle.com/#!9/63d47/29

以下是我的查询

桌子:

预期结果:

当前查询结果:

0 投票
3 回答
55 浏览

mysql - 如何在 MySQL 中对具有相同权重的记录进行排名

假设我有一个数据说:

现在学生A将获得第一名,学生B和学生C将获得第二名,学生D将获得第四名。

如果没有重复权重,我知道基本排名计算,但是如果我们遇到 2 个相似的权重如何处理,因为在这种情况下,有两个 85 标记将共享排名 2。