Hi
I have XML column in my table which can contain XML like these 2 records :
record 1, suppose that ID of record is 1 and XML content is
<content>
 <node1 >10</node1>
 <node2 >20</node2>
 <node3 >30</node3>
 <node4 >40</node4>
 <node5 >50</node5> 
</content>
record 2 , suppose that ID of record is 2 and XML content is
<content>
 <node_name_1 >10</node_name_1>
 <hello >20</hello>
</content>
I want to know IDs of records with inner node value of 10 .
declare @ids nvarchar(500)
set @ids = '10';
select id from tablename
 where
 convert(nvarchar(max),xmlfieldname.query('data(/content/* = ( sql:variable("@ids") )  )') ) = 'true'
this is working perfectly , but my problem is when I want to use multiple values for inner nodes . I want to know IDs of records which inner values are either 10 or 20 . This query works perfect :
 select id from tablename
 where
 convert(nvarchar(max),xmlfieldname.query('data(/content/* = ( 10,20 )  )') ) = 'true'
But when I use sql:variable , nothing returned !
declare @ids nvarchar(500)
set @ids = '10,20';
select id from tablename
 where
 convert(nvarchar(max),xmlfieldname.query('data(/content/* = ( sql:variable("@ids") )  )') ) = 'true'
how can I use something like Select * from mytable where fieldname in ('123','456') in XML ?