• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Update文の書き方について)

Update文の書き方について

このQ&Aのポイント
  • SQLのUPDATE文におけるnameフィールドの値の更新方法についてアドバイスをください。
  • UPDATE文でnameフィールドの値をセットする際、nameフィールドが空でない場合にのみ更新する方法を教えてください。
  • 特定の条件を満たすnameフィールドの値のみをUPDATE文で更新する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

UPDATE 表名 SET 列名=更新値[,・・・] WHERE 検索条件 という基本的な構文です。 >nameフィールドに値がセットされているもののみ 「値がセットされている、セットされていない」とは、具体的に何をもって判断するのでしょうか? 一般的にはNULLでしょうが、提示された定義では「NOT NULL」でNULLにできないようになっています。 「NOT NULL」をやめ、NULLを「値がセットされていない」状態とするなら、 WHERE `name` IS NOT NULL といった条件指定になります。 「NOT NULL」はそのままで、「長さ0の文字」を値がセットされていないとするなら、 WHERE `name`>'' だとか WHERE CHAR_LENGTH(`name`)>0 などの条件指定が考えられます。 とここまで書いて、「長さ0の文字」を格納しているのに気付きました。テーブルの各列の役割や値について、説明するようにして欲しいものです。

iroha_168
質問者

お礼

ご回答ありがとうございます。 ご教示いただいたSQLを試したところ、意図した動作となりました。 【NULL許可で値がセットされていない=NULLの場合】 UPDATE `test` SET `name` = "かきくけ" WHERE `name` IS NOT NULL 【NULL不許可で値がセットされていない=長さ0の文字列の場合】 UPDATE `test` SET `name` = "かきくけ" WHERE CHAR_LENGTH(`name`)>0 それと、値がセットされていないの定義が漏れており、申し訳ございせんでした。 以後、気をつけたいと思います。 以上、よろしくお願いします。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

nameがvarcharなので、素直に UPDATE `test` SET `name` = "かきくけ" where not name='' でよくないですか?

iroha_168
質問者

お礼

ご回答ありがとうございます。 ご教示いただいたSQLを試したところ、意図した動作となりました。 このたびはどうもありがとうございました。 以上、よろしくお願いします。

関連するQ&A