我试图更新一个表格,其中一个名为" operatori"的字段包含一组数字。 这是一个例子。 2,4,4,4,4,4
我打算做的是摆脱集合中相同元素的多次迭代,得到一个更清晰的元素,如:2,4。
我尝试用4替换4,4,4,4,4,但只有当我有5次相同元素的迭代并且只有4号时才有效。
数字从0到7,迭代可以从1到N.
我认为正则表达式可以解决问题,但老实说,理解它们有很多困难。
你有任何提示吗?
答案 0 :(得分:1)
试试这个,
$str = "2,4,4,4,4,4";
$array = explode(",",$str);
$array = array_unique($array);
print_r($array);
输出
Array
(
[0] => 2
[1] => 4
)
答案 1 :(得分:0)
您可能为此目的使用了错误的数据结构。通常,您需要一个每个项目有一行的联结表,而不是将这些项目存储在列表中。
但是,只有8个项目,您可以执行以下操作 - 如果您不关心订购。
select concat_ws(',',
(case when find_in_set('0', operatori) > 0 then '0' end),
(case when find_in_set('1', operatori) > 0 then '1' end),
(case when find_in_set('2', operatori) > 0 then '2' end),
(case when find_in_set('3', operatori) > 0 then '3' end),
(case when find_in_set('4', operatori) > 0 then '4' end),
(case when find_in_set('5', operatori) > 0 then '5' end),
(case when find_in_set('6', operatori) > 0 then '6' end),
(case when find_in_set('7', operatori) > 0 then '7' end)
)
. . .
此逻辑也可用于update
语句。