简体   繁体   中英

How implement friends Relationship android

I'm trying to implement some code for get friends list. First:

- I have my String id. E.G: 784717
    - I have an string with 100 numbers. E.G: 7781,5913,551949194,4919491,...,444131 (One string separated by ,)
    - I have 3000 records in my Database with different numbers. (With numbers I mean some kind of ID)
    - Of my 100 numbers only 8 are registered in my database.

Question:

  • How can I know what numbers are registered in the database and insert in other table the relationship? My table Relationship have this columns:

    *number1 - (Here should be my ID)
    *number2 - (1 of the 100 numbers that exists)

  • So in my table Relationship should be 8 new rows.

    I tried with :

     EXEC('SELECT * FROM Accounts WHERE ID IN(' +@in_mystring+')') 

but i don't know how insert in the other table or if is efficiently

Assuming this is SQL Server, and with the help of a parser function

For example

Select * from [dbo].[udf-Str-Parse]('7781,5913,551949194,4919491,...,444131',',')

Returns

Key_PS  Key_Value
1       7781
2       5913
3       551949194
4       4919491
5       ...
6       444131

From this sub-query, you can join the results to your Accounts Table

Perhaps something like this

Select A.*
  From Accounts A
  Join (Select * from [dbo].[udf-Str-Parse]('7781,5913,551949194,4919491,...,444131',',')) B
    on A.Key_Value =A.ID

The UDF -- If 2016, There is a native parser.

CREATE FUNCTION [dbo].[udf-Str-Parse] (@String varchar(max),@delimeter varchar(10))
--Usage: Select * from [dbo].[udf-Str-Parse]('Dog,Cat,House,Car',',')
--       Select * from [dbo].[udf-Str-Parse]('John Cappelletti was here',' ')
--       Select * from [dbo].[udf-Str-Parse]('id26,id46|id658,id967','|')

Returns @ReturnTable Table (Key_PS int IDENTITY(1,1) NOT NULL , Key_Value varchar(max))

As

Begin
   Declare @intPos int,@SubStr varchar(max)
   Set @IntPos = CharIndex(@delimeter, @String)
   Set @String = Replace(@String,@delimeter+@delimeter,@delimeter)
   While @IntPos > 0
      Begin
         Set @SubStr = Substring(@String, 0, @IntPos)
         Insert into @ReturnTable (Key_Value) values (@SubStr)
         Set @String = Replace(@String, @SubStr + @delimeter, '')
         Set @IntPos = CharIndex(@delimeter, @String)
      End
   Insert into @ReturnTable (Key_Value) values (@String)
   Return 
End

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM