1

私はこのコードを試しています。ただし、構文エラーが発生します。正しい方法は何ですか?

UPDATE Classificacao AS C
SET C.ClassificacaoCPV_id = (
    SELECT CONCAT(
      SELECT ClassificacaoCPV FROM Classificacao, 
      SELECT substring_index(`ClassificacaoCPV_id`,'|',-1) FROM Classificacao)
 )

エラー: SQL エラー (1064): SQL 構文にエラーがあります。'SELECT C.ClassificacaoCPV FROM Classificacao,
SELECT substring_index(`Class' at line 4付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

4

2 に答える 2

1

ここからわかることは、ClassificacaoCPV と既存の ClassificatiocaoCPV_id の一部を連結した ClassificatiocaoCPV_id を作成したいということです。

UPDATE Classificacao
   SET ClassificacaoCPV_id = 
          CONCAT(ClassificacaoCPV, substring_index(ClassificacaoCPV_id,'|',-1))

これは、その場で行うのは少し危険です。ClassificacaoCPV_idあなたの仮定は一度しか機能せず、その後、列を再度引っ張ってもうまくいかない可能性があります。いくつかの推奨事項: 1) 次のクエリを実行し、データを取得している列を更新する前に、結果が期待どおりであることを確認します。ClassificacaoCPV_id_new2)データの一部を取得する列を更新する代わりに、新しい ID 列などの追加の列を追加します。

select CONCAT(C.ClassificacaoCPV, substring_index(ClassificacaoCPV_id, '|',-1) from ClassificacaoCPV

カットは一度しかできないので、2回測定することを忘れないでください.

于 2013-04-02T16:26:58.823 に答える