Получить различные значения из столбца, разделенного запятыми, и вставить в другую таблицу в mysql

#mysql

#mysql

Вопрос:

У меня есть столбец в таблице MySQL, который состоит из значений, разделенных запятыми, в столбце, и в том же столбце есть различные повторяющиеся значения. данные выглядят следующим образом-

select id,category_ids from tableName;
--------- -----------------------
| id | category_ids |
--------- -----------------------
| 1062810 | 4,7,2,2,2,2,4,7 |
| 1062812 | 4 |
| 1062814 | 7,7,7,7,7,7,7,7 |
| 1062850 | 2,2,2,2,2,2,2,2,2,2,2 |
| 1063294 | 6,6,6,6,6,6,6,6,6,6,6 |

и вывод должен быть

--------- -----------------------
| id | category_ids |
--------- -----------------------
| 1062810 | 4,7,2 |
| 1062812 | 4 |
| 1062814 | 7 |
| 1062850 | 2 |
| 1063294 | 6 |

Пожалуйста, помогите мне, я новичок в mysql

Комментарии:

1. если кто-либо может поместить и обновить запрос для вышеупомянутого, это будет для меня более полной помощью

2. Могу ли я узнать, какой у вас язык сценариев на стороне сервера? Пример: PHP

3. Привет @MathsRkBala, я использую PHP

Ответ №1:

Попробуйте это:

 // Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "select id,category_ids from tableName";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        $id = $row["id"];
        $category_ids = array_unique(explode(',',$row["category_ids"]));

        $update_sql = "update tableName category_ids='".implode($category_ids,',')."' where id = ".$id ;
        $res = $conn->query($update_sql,$conn);

        echo "Update ID-".$id." Category ids:" .$row["category_ids"]. " Into " . implode($category_ids,','). "<br>";
    }
} else {
    echo "No data in your table";
}
$conn->close();
  

Комментарии:

1. Спасибо @Maths это может быть хорошим решением, но я ищу какое-нибудь решение для запросов mysql.