gpt4 book ai didi

Mysql通过部分匹配搜索相似整数

转载 作者:可可西里 更新时间:2023-11-01 08:35:35 26 4
gpt4 key购买 nike

好的。我将尝试详细描述我的案例。我已经向 4 个用户提出了 6 个问题(是/否),并将这些答案记录为字符串变量(1-是,0-否)。因此,我有:

CREATE TABLE `answers` (
`user_id` int(10) unsigned NOT NULL,
`answers` int(6) DEFAULT NULL,
PRIMARY KEY (`user_id`)
);
INSERT INTO `answers` VALUES ('1', '111111');
INSERT INTO `answers` VALUES ('2', '111000');
INSERT INTO `answers` VALUES ('3', '110011');
INSERT INTO `answers` VALUES ('4', '100001');

现在我正在尝试查找类似于我的“111111”结果的结果(我对所有问题的回答都是)。对 50% 的匹配行感兴趣。

用户 #1 有 100% 匹配的答案 111111=111111
用户 #2 有 50% 的匹配答案 111000 -> 111111
……等等

所以我想知道什么查询会为我找到 50% 的匹配行:)

最佳答案

BIT_COUNT应该帮助你。

SELECT * FROM table WHERE BIT_COUNT(score)>=3;

此查询假设您有 6 个问题并寻找得分超过 50% 的分数;

如果你像这样插入行

INSERT INTO `answers` VALUES ('1', b'111111');

您不必使用转化。

更准确地说,如果您以这种方式插入分数,它们将被视为二进制,并且您可以在您的情况下成功使用按位运算符。所以如果你这样做,例如

SELECT user_id, BIT_COUNT(answers) FROM answers

您将获得正确答案的数量。要从给定的分数中获得 +/- 2 分,它将是

SELECT user_id FROM answers WHERE BIT_COUNT(answers) BETWEEN BIT_COUNT(score_to_compare_with)-2 AND BIT_COUNT(score_to_compare_with)+2 

关于Mysql通过部分匹配搜索相似整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com