7

我有一个值想存储在我的数据库中,排序规则对这样的字符串有什么影响吗

YToyOntzOjIwOiJUeXBlX29mX29yZ2FuaXNhdGlvbiI7czoyMDoiTWVtYmVyIG9mIFBhcmxpYW1lbnQiO3M6ODoiUG9zdGNvZGUiO3M6NzoiUEUxIDFKQSI7fQ==

可以储存吗?此外,我似乎能够将这些值写入数据库的唯一方法是使用BLOB这似乎是一种非常错误的存储方式。

4

1 回答 1

11

只有当您需要ORDER BY或搜索该列时,排序规则才会产生影响。这些 base64 编码的项目可能不会被搜索或排序。

如果您的编码项目保证长度小于 64K 字节,请像这样定义您的列:

   `columnname` TEXT CHARACTER SET ascii,

这正是 base64 编码变量所需要的;编码过程将所有内容都转换为可显示的 ASCII。

如果项目的长度小于 16 兆字节,但有些会超过 64k,请MEDIUMTEXT使用TEXT.

多年后编辑。

解码后的 OQ 编码字符串是一个序列化的 php 对象:

a:2:{s:20:"Type_of_organisation";s:20:"Member of Parliament";s:8:"Postcode";s:7:"PE1 1JA";}

观察 1:使用 utf8 或 utf8mb4 字符集,很多这些东西在没有编码的情况下存储在文本列中。很多?是的。WordPress 以这种方式存储选项数据。

观察 2:如果它可以转换为 JSON,您可以在 MySQL 的最新版本中使用 JSON 数据类型。JSON 搜索仍然不可搜索,但它们是结构化的。

于 2013-08-13T01:10:38.033 回答