Php 从字段中删除重复值的MySQL查询

Php 从字段中删除重复值的MySQL查询,php,mysql,duplicates,Php,Mysql,Duplicates,我遇到了一个与数据库表字段相关的问题,其中许多值在逗号分隔的字符串中是相同的 考虑表名顺序,其中一个字段是选项 现在,带有逗号分隔值和类型的选项为varchar 范例- options value is 10,15,20,15,25,10 现在我想对订单表运行SQL查询,以 options value should be 10,15,20,25 如何运行SQL查询来排序选项字段中的唯一值 使用此查询,您将从表中获得唯一值: select * from Order join numbers

我遇到了一个与数据库表字段相关的问题,其中许多值在逗号分隔的字符串中是相同的

考虑表名
顺序
,其中一个字段是
选项

现在,带有逗号分隔值和类型的
选项
为varchar

范例-

options value is 10,15,20,15,25,10
现在我想对订单表运行SQL查询,以

 options value should be 10,15,20,25
如何运行SQL查询来排序
选项
字段中的唯一值

使用此查询,您将从表中获得唯一值:

select * from Order join numbers on char_length(options) - char_length(replace(options, ',', '')) >= n - 1

一旦得到查询结果,就可以在PHP中分解并执行array_unique

$duplicateValues = explode(',',$sqlResult);
$duplicateValues= array_unique($duplicateValues);
function.php

INSTR (ori_str, sub_str)


您需要打开数据库。将多个逗号分隔的值放在同一列中是一个非常糟糕的主意,这会给您带来很多麻烦和糟糕的性能。这个问题不应该结束。GROUP_CONCAT()结果当然可以包含需要规范化的非唯一值。链接到“已经有答案”的问题不包含任何可行的答案,甚至没有PHP作为标记!OP在这个问题的标签中包含了PHP,所以答案是一个非常优雅、简短的PHP语句,使用explode、array_unique和introde。这个问题需要重新讨论,这样我才能回答。谁在关闭这些东西?如果它们在varchar列中以逗号分隔,这将如何给出OP unique选项id?我已使用csv导入数据,并且数据条目变得重复,我需要从中删除重复条目field@RakeshJesadiya您必须在问题中提到这一点,从字符长度上的订单连接编号中选择*(选项)-字符长度(替换(选项“,”,“)>=n-1
INSTR (ori_str, sub_str)
POSITION(substr IN str)