MySQL 中是否有像 PostgreSQL 一样的数组数据类型?
我需要在 MySQL 数据库中存储整数数组。 MySQL 中有类似的东西吗?
CREATE TABLE tictactoe (
squares integer[3][3]
);
我想存储尺寸为 20x6 的矩阵。我不想创建一个包含 120 列的表。不需要对该字段进行查询,只需要存储和检索完整的矩阵。
如果重要的话,我使用 Perl。
I need to store arrays of integers in a MySQL database. In there something equivalent to this in MySQL?
CREATE TABLE tictactoe (
squares integer[3][3]
);
I want to store matrices with dimension 20x6. I don't feel like creating a table with 120 columns. There is no need to query on this field, just need to store and retrieve full matrices.
If it matters, i use Perl.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不,没有这样的事情。有一个开放工作日志,但在实施方面尚未取得任何进展这个功能。
您必须以某种方式模拟这一点,使用多个字段(在您的例子中为 9 个)或将整数打包成更大的数据类型(例如 blob)。
No, there is no such thing. There is an open worklog for that, but no progress has been made on implementing this feature.
You have to emulate this somehow, using either multiple fields (9 in your case) or pack the integers together into a larger datatype (blob for example).
使用适当的分隔符以文本格式存储它们。
例如:- 如果要存储 1 到 9 的数字,请将它们以文本格式存储为 1-2-3-4-5-6-7-8-9,其中“-”是分隔符。分解字符串并得到所需的数字。
Store them in a text format using proper delimiters.
ex:- If you want to store numbers from 1 to 9, store them in text format as 1-2-3-4-5-6-7-8-9 where '-' is a delimiter. Explode the string and get the desired numbers.
MySQL 中没有数组数据类型。但是您可以以 JSON 数组形式存储数组。当然,在这种情况下 SQL 文本会更复杂。
示例:
小提琴 JSON 是二进制数据类型,需要
CAST(value AS CHAR)
将其转换为字符串。There is no array datatype in MySQL. But you may store array in JSON array form. Of course the SQL text will be more complex in this case.
A sample:
fiddle
PS. JSON is binary datatype,
CAST(value AS CHAR)
needed for to convert it to string.不,没有。简短的答案,但不知道你做了什么,这就是答案。
No there is not. Short answer but without knowing what you have do that is the answer.