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

MySQLで文字列を処理するためのexplode()と同等

    MYSQLにはexplode()がありません 組み込みの関数のようなものです。ただし、DBに同様の関数を簡単に追加して、phpクエリから使用することができます。その関数は次のようになります:

    CREATE FUNCTION SPLIT_STRING(str VARCHAR(255), delim VARCHAR(12), pos INT)
    RETURNS VARCHAR(255)
    RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos),
           CHAR_LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1),
           delim, '');
    

    使用法:

    SELECT SPLIT_STRING('apple, pear, melon', ',', 1)
    

    上記の例では、appleが返されます .MySQLで配列を返すことは不可能だと思うので、posで明示的に返すオカレンスを指定する必要があります 。使用に成功した場合はお知らせください。



    1. ユーザーアカウントの管理、役割、権限、認証PHPおよびMySQL-パート5

    2. NHibernateで一括挿入操作を高速化

    3. SQLiteUNIONオペレーター

    4. SELECTタイプのクエリは、ネストできる唯一のタイプですか?