MySQL

  • Procedura zastępująca funkcję EXPLODE z PHP i inne przydatne...  Zródło: Ondra.Žižka.cz (nawet generator sekwencji, choć znam lepszy sposób)

    CREATE PROCEDURE lib_Explode( sSepar VARCHAR(255), saVal TEXT )
    body: 

    BEGIN
    DROP TEMPORARY TABLE IF EXISTS lib_Explode; CREATE TEMPORARY TABLE lib_Explode(
    `pos` int unsigned NOT NULL auto_increment,
    `val` VARCHAR(255) NOT NULL,
    PRIMARY KEY (`pos`)
    ) ENGINE=Memory COMMENT='Explode() results.';

    IF sSepar IS NULL OR saVal IS NULL THEN LEAVE body; END IF;

    SET @saTail = saVal;
    SET @iSeparLen = LENGTH( sSepar );

    create_layers:
    WHILE @saTail != '' DO

    # Get the next value
    SET @sHead = SUBSTRING_INDEX(@saTail, sSepar, 1);
    SET @saTail = SUBSTRING( @saTail, LENGTH(@sHead) + 1 + @iSeparLen );
    INSERT INTO lib_Explode SET val = @sHead;

    END WHILE;

    END; $$


    Użycie:
    CALL lib_Explode( ',' , 'Ahoj, jak se máte, 212' );
    select * from lib_explode;
     
     
  • http://mysql-sr-lib.sourceforge.net/ rożne dziwne funkcje, w tym operacje na tablicach, gdy ktoś potrzebował, ale to chyba tylko do generowania danych do AJAXa...