问题标签 [mysql-5.7]
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.
mysql - 有没有办法用 Win7 上带有换行符的 json 文件中的数据填充 MySQL 5.7 表?
我有以下示例 json 文件,我正在尝试用它填充 MySQL 表。由于 MySQL 5.7 支持 json 作为本机数据类型,我认为这应该不是问题,但 MySQL 的 json 验证器似乎对文件内的换行符有问题。一旦我摆脱了所有换行符并将我的示例文件写在一行中,它就可以完美运行。
我知道 json 本身就存在包含反斜杠的字符串的问题,但是即使在编写任何类型的单词而不是路径时,MySQL json 验证器仍然无法完全读取 json 文件,并且只会在第一个换行符之前停止。我仍然收到以下错误:
使用以下查询时:
我想这很可能是由于换行编码而发生的,但我仍然不知道是否有任何解决方法可以解决它。
更新:我自己找到了一个解决方案...通过添加LINES TERMINATED BY '\\n'
,我可以成功地用 json 数据填充表,并利用 MySQL 新的 json 支持的优势。
mysql - 具有本机 JSON 支持的 MySQL 5.7 - 如何选择数组中存在特定值的行?
我有一个带有名为“json”的本机 JSON 字段/列的人员表。我的表的第一行在 json 列中有以下内容:
或此处格式正确:
http://www.jsoneditoronline.org/?id=bcceb2f1ec208ea23737ee32c1ccc5a3
所以-我的问题是:如何搜索对象“mobility”中是否存在值“car”?
这不起作用:
(没有结果)
也不行:
(没有结果)
这(使用 JSON_CONTAINS)也不起作用:
(给出错误:SELECT * FROM Persons
WHERE JSON_CONTAINS( persons
. json
, 'car', "$.mobility"))
但这很好用:
我认为这是一个问题,因为“移动性”包含一个数组......但是如何选择这个数组“移动性”中是否存在一个元素?
mysql - LIMIT with ORDER BY slowdown query solution for geospacal mysql 5.7
在 geom 字段上使用地理空间索引的地理空间搜索中,当我想按距离排序时,我的时间查询异常增加,是否有替代语法来避免这种情况?注意我知道这篇文章:https ://explainextended.com/2011/02/11/late-row-lookups-innodb/ 但是这个技巧不能通过下面的查询来实现:
此查询无顺序需要 0.005s
解释 :
这个带有 ORDER BY 的需要 0.16s
欢迎解决方案、建议、替代语法或技巧..
sql - MySql 程序错误 1292 自动减去 2 年
当前出现错误
20:45:54 call book_rental(1, 5, 2, 50.00, 2, 2, 5.00, 3, 4, 2.00, 4, 2, 10.00, '现金', '2016-01-01', '2016-01 -05') 错误代码:1292。不正确的日期时间值:第 1 行的列 'date' 的 '2014' 0.265 秒
这是代码。请帮忙!
mysql - 重写查询以防止 only_full_group_by 错误
我有以下查询:
现在我已经升级了 MySQL 并且only_full_group_by setting
被激活了。此查询不再以这种形式工作:
当然,我可以禁用此设置,但我知道引入此设置是有原因的。简单地添加icao
到GROUP BY
子句会引入不同的结果。
如何在启用此设置的情况下重写此查询以实现相同的行为?
mysql - Mysql 5.7 json 数据类型,在 Rails 5 中使用 activerecord 查询
我正在使用 Rails 5 rc1 制作应用程序。Rails 5 支持 mysql 5.7 json 数据类型。
假设该列中的值如下:
要在外部列中搜索特定的“id”和“type”,我在 mysql 中使用以下查询:
现在,我想知道如何使用 rails 进行相同的查询。以下不起作用:
注意:我无法删除 json 文本周围的引号,因为它是查询的一部分。
mysql - MySQL JOIN 不使用 < > 运算符过滤 WHERE 子句,因为从 MySQL 5.6 -> 5.7 移动
我们正在将我们的数据库系统从 MySQL 5.6 升级到 MySQL 5.7,并且自从升级以来,一些查询的运行速度非常慢。
经过一番调查,我们将其范围缩小到一些 JOIN 查询,这些查询在使用“大于”> 或“小于”< 运算符时突然不再听“WHERE”子句。使用 '=' 运算符时,它确实按预期工作。当查询一个大表时,这会导致持续 100% 的 CPU 使用率。
查询已被简化以解释手头的问题;使用解释时,我们得到以下输出:
输出
如您所见,它正在查询/匹配488389行而不使用 where 子句,因为这是该表中的总记录。
现在运行相同的查询,但使用LIMIT 99999999命令或使用“=”运算符:
输出
您可以看到它突然只匹配作为表的一部分的 '244194' 行,或者使用 '=' 运算符:
正如预期的那样,只有 1 行。
所以现在的问题是,我们是否一直在以错误的方式查询,只是在升级时才发现,还是自 MySQL 5.6 以来发生了变化?=运算符起作用似乎很奇怪,但由于某种原因, < 和>被忽略了,除非使用 LIMIT?..
我们四处搜索,找不到这个问题的原因,出于显而易见的原因,我们宁愿不在我们的代码中使用限制 9999999 的解决方案。
注意当只在连接内运行查询时,它也可以按预期工作。
注意我们还在 MariaDB 10.1 上运行了相同的测试,同样的问题。
mysql - 为什么在“if”或“when”中输出位总是输出 0?mysql 5.7
我一直在处理一些位列。我必须根据第三列选择一列或另一列。那不是我的问题。这是一个简化的示例,以显示我遇到的情况。
请注意,在“真实世界”场景中,ColType 通常通过外键加入。
这将创建 3 列的所有可能组合。以下是我使用此数据运行的查询。
结果是:
我的问题是:为什么此查询的某些版本有效而其他版本无效?我希望临时表保持与第一个选择中显示的值相同的值,但显然情况并非如此。那么为什么会出现所有这些数据不匹配的情况呢?
编辑: 我在 Windows 7 上使用 MySql Workbench 6.3.6 Community。
mysql - mysql.user 表中的 max_connections 列有什么用?
我们都知道:
max_connections是指所有客户端可以同时在 mysql 实例上创建的连接总数。
而max_user_connections是指用户可以同时创建的连接总数。
那么为什么 mysql.user 表中的所有用户都有一个名为 max_connections 的单独列?因为max_connections对于所有用户都是相同的,并且是所有连接的全局变量?
mysql - OLD_PASSWORD 5.7.5+ 中的函数
我在这里使用一个遗留代码库,目前OLD_PASSWORD()
用作简单的散列函数。该代码库现在需要连接到运行最新版本 MySQL 5.7 的数据库。
相当于PASSWORD()
似乎是:UPPER(SHA1(UNHEX(SHA1(password))))
。
有类似的等价物OLD_PASSWORD()
吗?