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

MYSQL:テキストの一部を選択し、ドットの位置に基づいて切り取ります

    たぶん、このようなものがうまくいくかもしれません:

    SELECT
        id,
        CASE
            WHEN len <= 500 THEN content
            ELSE CASE
                WHEN idx > 0 THEN SUBSTRING(content, 1, idx)
                ELSE ''
            END
        END AS content
    FROM (
      SELECT 
        id,
        content,
        LOCATE('.', content, 500) AS idx,
        LENGTH(content) AS len
      FROM data
    ) AS data
    

    ここで実際の動作を確認できます: http://sqlfiddle.com/#!2/ac4d3 / 2 (私は明らかな理由で長さ10の文字列を使用します;))




    1. パラメータとともに使用する場合にOR句の使用を最適化する方法(SQL Server 2008)

    2. SQLServerの重複キー更新に関するMySQLと同等

    3. アクセスデータベースを超高速にする方法!

    4. OracleのデフォルトのDATE形式