问题标签 [user-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.
sql - mysql update 语句的行为会根据用户变量是否存在而有所不同
我正在重置具有重复或缺失值的排序列,如下所示:
(遍历所有按多个关键字段排序的行,这些字段分配逐渐递增的值进行排序;每当这些字段中的任何一个发生变化时,从 0 重新开始。)
似乎只有在进行更新之前创建了 @sort 变量时才有效(尽管它的设置无关紧要)。如果没有“set @sort”,所有排序值都设置为 0 或 NULL。
任何想法为什么会这样?MySQL 版本 5.0.51。
更新:为了更详细地解释逻辑:在第一行上,@last=(@last:=...) 将始终为 false,此后当任何关键字段从前一行更改时,它将为 false . (注意没有一个被连接的关键字段是NULL)。当它为假时,我们从 0 (@sort:=0) 重新开始排序计数器,否则,它会递增 (@sort:=@sort+1) 并使用新值。
在更新语句中设置之前,绝不会使用@sort,因此在更新语句之前是否设置或如何设置应该没有区别。
php - 在一个查询中执行更新并设置用户变量
熟悉 php 的 mysql_query 命令的人都知道,它不允许我们在一次调用中执行多个查询(由 ; 分隔符分隔)...
我的问题是我不能在我的 UPDATE 查询中定义一个用户变量,以便我为每一行递增它(有点像自动递增)。它应该看起来像这样:
我的问题是,因为我无法定义我的变量然后进行更新,所以我找不到在查询中设置变量的方法。如果它是NULL,我试图定义它:
但它没有工作,因为变量在它工作的每一行都会重置。
任何熟悉mysql的人都知道这是一个解决方案吗?提前致谢。
mysql - MySQL 从用户变量的视图中选择 - 意外结果
我有 2 张桌子和一个视图。在product_oper
我有一些我收到的产品(何时id_dest
为 1)和我出售的产品(何时id_src
为 1)。该表product_doc
包含操作发生的日期。
在视图中,我想查看所有操作和日期。
现在我想看看单个产品的操作,以及特定日期的数量和价值。
我得到的结果很奇怪:
金额从零开始,
在第 1 行:+3 => 3 (ok)
在第 2 行:-0.5 => 2.5 (ok)
在第 3 行:+1 => 3.2 (???)
在第 4 行:-0.3 => 2.2 (???)
看来MySQLORDER BY
在执行语句时并没有按照子句中指定的行顺序,而是在id之后查找: See that document with id 4 is before document with id 3 ('2009-10-21' < ' 2009-10-28')
我做错了什么,还是 MySQL 的错误?
php - 从 msqli::multi_query 取回行时遇到问题
我有一个包含许多语句的 sql 查询。它:
- 设置用户变量
- 调用存储过程
- 调用另一个存储过程
- 选择一些数据
我知道查询是正确的,因为我已经在 MySQL Workbench 中以同一用户对其进行了测试。查询是这样的:
那只是存储在一个字符串中:$sql
. 然后我在 PHP 中使用它:
这会打印一个结果对象,但它是空的。尝试迭代它也不会产生任何结果。
我究竟做错了什么?我什至可以使用这样的用户变量吗?或者我是否需要将过程转换为存储函数并执行三个单独的查询?
mysql - MySQL中用户定义变量的奇怪行为
我注意到用户定义的变量有些奇怪:
假设我有这张桌子:
我可以创建一个逗号分隔的列表并将其存储在用户定义的变量中,如下所示:
这会将值分配3,6,9
给@var
.
这是奇怪的部分。跑步
返回 1,但正在运行
返回 0。
在我看来,它应该工作或不工作。知道为什么它只适用于列表中的第一个数字吗?
sql - 如何将 SQL 查询结果的数值赋给 Double 数据类型的包变量?
我有一个简单的任务 - 使用 Execute SQL 任务中的 ResultSet 填充用户变量
(这只会返回一列和一行)。
MainID 当前作为用户定义的数据类型存储在数据库中。该值以 XXXX.Y 格式存储(例如 8008.1)。
如果我将 UserVariable 更改为 String 数据类型,我可以毫无问题地分配该值,将 ResultSet 转换或转换为 STRING/NUMERIC/FLOAT。
或者
但是,如果用户变量数据类型为 DOUBLE,我无法分配该值。我收到以下错误消息:
[执行 SQL 任务] 错误:将值分配给变量“dUserVariable”时发生错误:“分配给变量“User::dUserVariable”的值的类型与当前变量类型不同。变量在执行期间可能不会更改类型. 变量类型是严格的,除了 Object 类型的变量。”。
我对 SSIS 还很陌生,所以我对如何进行这种转换有点困惑。
有任何想法吗?
ssis - SSIS 从 CSV 文件更新用户变量
我对 SSIS 相当陌生,我一直在到处寻找这个问题的答案但找不到它,这让我觉得它非常简单明了,因为我很确定这是 SSIS 的标准问题。
我正在构建一个 SSIS 包来自动上传数据。
我们有一个跨四台服务器的多实例环境,并且使用的是 SQL Server 2005。因此,我有一个用于服务器名称和实例名称的用户变量。数据库和表将始终保持不变。数据保存在 excel 文件中,但我将使用 CSV 导入数据。
有没有办法让我从 CSV 文件更新用户变量?TSQL - “打开行集”是前进的方向吗?
我之前一直在更新已将数据导入到的表中的变量,但后来我意识到在实时情况下我不知道将数据导入到哪里,因为这些值仍然在 CSV 文件中。
请帮忙!这让我发疯,我有一种下沉的感觉,答案真的很明显,这让情况变得更糟!
谢谢!
朱丽叶
php - 同一连接上的多个mysql语句
我正在构建一个搜索查询,想知道下面的代码是否有效。基本上我会在第一条语句中设置@keywords 变量,然后在第二条语句中使用它。它似乎工作得很好,但我不确定这是否是一个好的程序。有任何想法吗?:)
关键是查询会更复杂,@keyword 会出现很多次。
mysql - mysql更新语句中的用户变量
让我们t
成为一个 mysql 表并n
成为其中的一个整数列。如果可以修改以下查询以便n - 10
只计算一次表达式,我会很感兴趣。
我知道,查询没有意义,但我需要在实际应用程序中使用相同的模式,其中值10
和5
将是 php 变量。
mysql - 用户变量不递增
为什么以下查询不会增加 seq?
结果: