Mysql 当字段包含逗号分隔的值时,Where子句返回错误的结果

Mysql 当字段包含逗号分隔的值时,Where子句返回错误的结果,mysql,mariadb,Mysql,Mariadb,我有一个表,其中包含id列和值列,其中包含逗号分隔的值,因此我希望在值列等于id列时获取行 表格结构为: CREATE TABLE `test` ( `id` INT NOT NULL AUTO_INCREMENT , `value` VARCHAR(255) NOT NULL , PRIMARY KEY (`id`) ) ENGINE = InnoDB; INSERT INTO `test` (`id`, `value`) VALUES

我有一个表,其中包含id列和值列,其中包含逗号分隔的值,因此我希望在值列等于id列时获取行

表格结构为:

CREATE TABLE `test` (
    `id` INT NOT NULL AUTO_INCREMENT ,
    `value` VARCHAR(255) NOT NULL ,
    PRIMARY KEY (`id`)
) ENGINE = InnoDB;

INSERT INTO `test` (`id`, `value`) VALUES
                   (NULL, '1,2,3,4,5'),
                   (NULL, '1,2,3,4,5');
查询

SELECT * FROM `test` WHERE id = value
由于没有匹配,查询应该不会返回任何结果,但下面是返回的结果:

服务器版本:5.5.52-MariaDB-MariaDB服务器

我有什么遗漏吗


谢谢

将数据保存为csv是非常糟糕的数据库设计。您应该规范化数据库。同时,您可以了解
find_In_set
我不想查找值列中是否存在id,我想检查value是否只包含一个id,并且它是同一行中的id
value
是mysqlI gues中的一个关键字如果您尝试从'test'WHERE cast(`id`as CHARACTER)=`value`选择*from`test` WHERE cast(`id`as CHARACTER)=`value`您得到了期望的结果,则会自动从varchar对话到inti