I have a table called tasks Where has a column named assigned_id which has comma separated values like (1, 2, 3, 4, 5). I need to count of the tasks user has assigned.
In Example: My name is Imdad and my user_id is 5, and the tasks table has column assigned_id which values are like 1, 3, 4, 5, 7... I need to count all the number of rows which assigned_id contain my user_id which is 5.
I have tried so many methods but not working till now.
I have tried
SELECT * FROM tasks WHERE $user_id IN (assigned_id);
Here the user_id is 5
It's returning if the assign_id value start with 5 (Example: 5, 3, 6, 7...)
Here is my code
<?php
$data = "SELECT COUNT('1') FROM task WHERE $user[id] IN (assigned_id)";
$get_data = mysqli_query($conn, $data);
$show = mysqli_fetch_array($get_data);
echo $show[0];
?>
I am attaching a screenshot for better understand!!!
Here I have marked the data which I want

But Here is the image with query, I got the first value

CodePudding user response:
As per my understanding on the above query this should work for you in MYSQL
if you want to get based on task_title
Select count(*) from tasks where assignee_id LIKE (CONCAT('%', (Select id from tasks where task_title = 'Imdad' LIMIT 1), '%'));
if you want to get based on id
Select count(*) from tasks where assignee_id LIKE (CONCAT('%', (Select id from tasks where id = 5 LIMIT 1), '%'));
Hope this helps.
CodePudding user response:
In such case you can use find_in_set function like:
select *
from tbl
where find_in_set(5, assigned_id);
