Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk memisahkan rentetan dengan pembatas dalam MySQL

Bagaimana untuk memisahkan rentetan dengan pembatas dalam MySQL

PHPz
PHPzke hadapan
2023-06-01 08:43:172010semak imbas

    MySQL memisahkan rentetan dengan pembatas

    Menggunakan

    anda boleh menggunakan fungsi berikut

    SUBSTRING_INDEX( i.final_car_type, ' ', 1 )
    • i.final_car_type ialah rentetan yang perlu dipisahkan

    • &rsquo ’ Iaitu: keluarkan Semua aksara sebelum ruang

    • Jika kiraan ialah nombor positif, hasilnya ialah segala-galanya di sebelah kiri pemisah N dari kiri ke kanan. Jika ia adalah nombor negatif, ia bermakna mengira dari kanan, mengambil segala-galanya di sebelah kanan pemisah ke-N

    • Kesannya

    Jika kiraan ialah 1

    Data jadual dan dalaman: Dongfeng Fengshen versi AX7 Mach baharu DF 21 (versi sunroof)

    • Selepas berpecah: Dongfeng Fengshen versi AX7 Mach baharu

    • Jika kiraan ialah -1

    Data jadual dan dalam: Dongfeng Fengshen versi AX7 Mach baharu DF 21 (versi sunroof)

    • Selepas membelah: 21 (Versi Skylight)

    • Prosedur tersimpan MySQL membahagi rentetan mengikut pembatas

      DELIMITER $$
       
      CREATE DEFINER=`root`@`%` PROCEDURE `proc_split_Id`(in selectIds blob(65535),
      in splitChar varchar(2))
      BEGIN
      set @i=0; 
      CREATE TEMPORARY TABLE if not exists Id_Result_s(Id long NOT NULL);
      truncate table Id_Result_s;
      SET @cnt = 1+(LENGTH(selectIds) - LENGTH(REPLACE(selectIds,splitChar,''))); 
      set @i=1; 
      	start transaction;
          WHILE @i <=@cnt DO          
              SET @result = REPLACE(SUBSTRING(SUBSTRING_INDEX(selectIds, splitChar, @i),
             LENGTH(SUBSTRING_INDEX(selectIds, splitChar, @i -1)) + 1),
             splitChar, &#39;&#39;);  
             INSERT INTO Id_Result_s(Id) VALUES (@result );
      		SET @i = @i + 1;   
          END WHILE;  
      	commit;    
      END
    • selectIds perlu dipecahkan rentetan, splitChar ialah pembatas Hasil pemisahan disimpan dalam jadual sementara Id_Result_s

    Terdapat penyata sisipan dalam sementara, yang dimasukkan dalam gelung dan selepas beberapa ketika boleh meningkatkan kecekapan.

    Atas ialah kandungan terperinci Bagaimana untuk memisahkan rentetan dengan pembatas dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam