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

サブストリングとcharindexのSQL構文エラー

    SQL Serverを使用している場合は、不正な形式のJOINがあります 。そして、非常に貧弱なテーブルエイリアス。おそらくこれはあなたが望むことをします:

    update fs
        set user_id = u.id,
            message = SUBSTRING(fs.message, 1, CHARINDEX('[', fs.message)-1)
        from edi_file_steps fs INNER JOIN
             GU_User u
             on u.login = SUBSTRING(fs.message, CHARINDEX('[', fs.message)+1, len(fs.message)- CHARINDEX('[',fs.message)-1 )
        where message LIKE '%Downloaded%' ;
    

    編集:

    MySQLでは、これは次のようになります。

    update edi_file_steps fs INNER JOIN
           GU_User u
           on fs.message like concat('%[', u.login, ']%')
        set user_id = table_B.id,
            message = substring_index(fs.message, '[', 1)
        where message LIKE '%Downloaded%' ;
    



    1. OracleのTRANSLATE(…USING)関数

    2. MySQLデータベースからの制約のリスト

    3. Empty($ _ POST)のデフォルト値を設定するにはどうすればよいですか?

    4. 連続する連続番号のグループの境界を見つける方法は?