与字符串MySQL:二进制与字符串的比较(mysql 二进制)
MySQL 将数据存储在二进制形式和字符串形式之间进行比较。当查询过程中必须与计算机中的字符串相比较,例如通过Like或Compare语句查找特定的结果时,此时MySQL会将查询字符串转换为二进制格式进行比较。
MySQL 使用一种叫做CMPFMT的字符串二进制对比格式来比较数据字符串。CMPFMT可以查看每个字符大小,并将这些字符串以整数值的形式返回。这个整数值就是字符串的比较值,其值可以是正,负,或者零。通过将比较值与0进行比较,MySQL便可以确定是否有字符串之间的相同性,从而也便可以确定是否有查询结果。
MySQL的二进制比较算法当中,其核心技术在于CMPFMT,这是 MySQL 用来测量字符串大小的一个函数。值得注意的是,CMPFMT不仅可以处理英文字符,还可以处理非英文字符,比如汉字等。通常情况下,CMPFRT会根据字符串大小来比较,并返回integer值,然而网络上也有可以直接由JavaScript 或 Python 等编程语言来实现CMPFMT函数的代码:
`function Cmpfmt(s1, s2) {
let length = Math.min(s1.length, s2.length);
let pos = 0;
while (pos
pos++;
}
let diff = s1.codePointAt(pos) – s2.codePointAt(pos)
return Math.sign(diff);
}`
从上面可以看出,MySQL将数据以二进制形式和字符串形式进行比较,可以说这种方法不仅可以用于文本比较,还可以用于比较非文本的复杂数据,只要搭配上不同的函数即可,特别是比较字符串时。MySQL的CMPFMT函数也可以由JavaScript或Python等编程语言来实现,以达到快速比较数据和速度更快的比较结果。