我遇到了与数据库表字段相关的问题,其中许多值在逗号分隔的字符串中是相同的。
考虑表名Order
,其中一个字段是options
。
现在options
用逗号分隔值和类型是varchar。
例-
options value is 10,15,20,15,25,10
现在我想在Order表上运行SQL查询,
options value should be 10,15,20,25
如何运行SQL查询来整理options
字段中的唯一值?
获得查询结果后,您可以在PHP中进行爆炸并执行array_unique
$duplicateValues = explode(',',$sqlResult);
$duplicateValues= array_unique($duplicateValues);
SUBSTRING_INDEX(str, delim, count)
https://www.w3resource.com/mysql/string-functions/mysql-substring_index-- function.php
INSTR (ori_str, sub_str)
https://www.w3resource.com/mysql/string-functions/mysql-instr-function.php
POSITION(substr IN str)
https://www.w3resource.com/mysql/string-functions/mysql-position-function.php
使用此查询,您将从表中获得唯一值:
select * from Order join numbers on char_length(options) - char_length(replace(options, ',', '')) >= n - 1