sql >> データベース >  >> RDS >> Mysql

複数の値の挿入はmysqlプロシージャで機能しますか?

    私はMySQLサーバーを持っていないので、おそらく構文エラーと+1エラーがあります(つまり、リストの最後をキャプチャしていない可能性があり、最初の項目を超えて進行しない可能性があります、コードに+1を入れることで問題が修正されます)、ただし、基本的には、INSERTステートメントをこれに置き換えたいと考えています。

    DECLARE INT _CURSOR 0;
    DECLARE INT _TOKENLENGTH 0;
    DECLARE VARCHAR _TOKEN NULL;
    
    SELECT LOCATE(str, ",", _CURSOR) - _CURSOR INTO _TOKENLENGTH;
    
    LOOP
    
        IF _TOKENLENGTH <= 0 THEN
            SELECT RIGHT(str, _CURSOR) INTO _TOKEN;
            INSERT INTO input_data1(mobile) VALUE _TOKEN;
            LEAVE;
        END IF;
    
        SELECT SUBSTRING(str, _CURSOR, _TOKENLENGTH) INTO _TOKEN;
    
        INSERT INTO input_data1(mobile) VALUE _TOKEN;
    
        SELECT _CURSOR + _TOKENLENGTH + 1 INTO _CURSOR;
    
        SELECT LOCATE(str, ",", _CURSOR + 1) - _CURSOR INTO _TOKENLENGTH;
    
    END LOOP;
    

    その場合、関数呼び出しは次のようになります

    EXEC mobile_series1('9619825525,9619825255,9324198256')
    



    1. MySQL列挙型とセット

    2. 行から最大値を取得して別のテーブルに結合する

    3. データベースから最も近い(距離)レコードを効果的に選択する

    4. データベースからドロップダウンCodeIgniterにデータを表示する