IN Clause used in the case of IN parameters is not Working while DELETING

84 Views Asked by At

I want to delete my records from the database based on some ID's.

This is the statement written in my STORED PROCEDURE to delete records based on DeletedID.

DELETE FROM tms_activity where activity_id IN (DeletedID);

My DeletedID is a string with records comma seperated like("1,2,3")

Now when I am passing DeletedID in my Statement as a parameter it is taking the input as "1,2,3" and deleting the record with the first DeletedID it is getting(1 in this case).But I want to delete all the records based on the given parameter.

DeletedId must be passed like (1,2,3) rather than ("1,2,3") than only it can delete all the records based on provided ID's...Now how can I do that?

I consulted this question: MySQL wrong output with IN clause and parameter, but couldn't understand how can I achieve my result.

1

There are 1 best solutions below

0
On

Did you try this

      DELETE FROM tms_activity where activity_id in
      ( SELECT ACTIVITY_ID FROM SOMETABLE WHERE FIELD = CRITERIA )

Or some more findings, if I were at this problem would select one of these solutions.

I investigated and found some very good links for you.

[http://johnhforrest.com/2010/10/parameterized-sql-queries-in-c/][1]

The Parametrized SQL queries have a benefit if you have to send a large number of parameters and want to run against one sql. It takes the sql in one chunk and all the parameters in other so keep the network traffic low.

You can search more in this topic

Thanks

QF