繁体   English   中英

MySQL数据库中应使用哪种数据类型来存储2个文本代码文件。 如果我以后打算比较相似性

[英]What data type should use in a MySQL database to store 2 text files of code. If I intend to compare similarity later

MySQL数据库中应使用哪种数据类型来存储2个文本代码文件。 如果以后打算比较相似性。

这是在Windows计算机上运行的MySQL数据库。

您还可以推荐一个可以为我比较代码的API。

根据MySQL文档

VARCHAR列中的值是可变长度的字符串。 长度可以指定为0到65535之间的值。 VARCHAR的有效最大长度取决于最大行大小(65535字节,在所有列之间共享)和所使用的字符集。

...

CHAR和VARCHAR列中的值根据分配给该列的字符集排序规则进行排序和比较。

因此,VARCHAR与表一起内联存储,而BLOB和TEXT类型与表一起存储,而数据库则保存数据的位置。 根据文本的长度,可以将TEXT定义为TINYTEXT,TEXT,MEDIUMTEXT和LONGTEXT,唯一的区别是保存的最大数据量。

  • TINYTEXT 256个字节
  • TEXT 65,535字节
  • MEDIUMTEXT 16,777,215字节
  • 长文本4,294,967,295字节

比较存储在TEXT(或任何其他字符串列)中的两个字符串 ,您可能要使用STRCMP(expr1,expr2)

如果字符串相同,则STRCMP()返回0;根据当前排序顺序,如果第一个参数小于第二个参数,则返回-1,否则返回1。

如果您指定所需的比较输出,则可以编辑答案。

编辑

要比较两个字符串并计算差异百分比,您可能需要使用similar_text 如官方文档所述

这将按照《编程经典丛书:实现世界上最好的算法》(奥利弗(ISBN 0-131-00413-1))中的描述计算两个字符串之间的相似度。 请注意,此实现未使用Oliver伪代码中的堆栈,而是使用递归调用,这可能会或可能不会加快整个过程。 还要注意,该算法的复杂度为O(N ** 3),其中N是最长字符串的长度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM