Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में अल्पविराम से अलग किए गए फ़ील्ड को एकाधिक पंक्तियों में कैसे विस्तारित करें

यदि आपको कर्सर का उपयोग करने में कोई आपत्ति नहीं है, तो यहां एक उदाहरण दिया गया है:


set nocount on;
-- create sample table, @T
declare @T table(id int, ips varchar(128));
insert @T values(1,'1.2.3.4,5.6.7.8')
insert @T values(2,'10.20.30.40')
insert @T values(3,'111.222.111.222,11.22.33.44')
insert @T values(4,'1.2.53.43')
insert @T values(5,'1.122.53.43,1.9.89.173,2.2.2.1')

select * from @T

-- create a table for the output, @U
declare @U table(id int, ips varchar(128));

-- setup a cursor
declare XC cursor fast_forward for select id, ips from @T
declare @ID int, @IPS varchar(128);

open XC
fetch next from XC into @ID, @IPS
while @@fetch_status = 0
begin
        -- split apart the ips, insert records into table @U
        declare @ix int;
        set @ix = 1;
        while (charindex(',',@IPS)>0)
        begin
            insert Into @U select @ID, ltrim(rtrim(Substring(@IPS,1,Charindex(',',@IPS)-1)))
            set @IPS = Substring(@IPS,Charindex(',',@IPS)+1,len(@IPS))
            set @ix = @ix + 1
        end
        insert Into @U select @ID, @IPS

    fetch next from XC into @ID, @IPS
end

select * from @U


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP का उपयोग करके mysql तालिका को .txt या .doc फ़ाइल में निर्यात करना

  2. MySQL में SQL स्क्रिप्ट कैसे चलाएं?

  3. 6 मिलियन पंक्ति तालिका पर मैसकल का प्रदर्शन

  4. Laravel 4 माइग्रेशन इश्यू में फॉरेन कीज़

  5. हाइबरनेट नामांकित क्वेरी - 3 टेबल में शामिल हों