(編集・追記依頼のご指摘を受け、全体的に、内容修正実施しました。すいませんが、改めてよろしくお願い致します)
よろしくお願いします。
CASE構文について、この構文は下記の使い方は適切でしょうか?それとも、もっと別の構文に効率的で利便性の良い構文がありますか?それを教えて頂きたいです。
まず、最初に、あるデータベースの(customer_table)というテーブル内容を、phpMyAdmin(MYSQL)にて管理している場合、以下の実現させたい内容については、CASE構文を使うのは、使う構文として適切ですか?
【 実現させたいこと 】
日付が入力されてない鈴木、橋本の『state』カラムを『未訪問』と更新させ、最終的に以下のデータベースの内容となるようにしたい。
【 実現前 】
(customer_table)
id(INT) customer(text) visiting_date(date) state(text)
1 田中 2016/07/23 訪問済み
2 鈴木
3 山田 2016/07/22 訪問済み
4 橋本
↓ ↓ ↓ ↓ ↓
【 実現後 】
(customer_table)
id(INT) customer(text) visiting_date(date) state(text)
1 田中 2016/07/23 訪問済み
2 鈴木 未訪問
3 山田 2016/07/22 訪問済み
4 橋本 未訪問
上記実現させるべく、以下の内容のSQL(CASE構文)を作成し、実行しました。しかし、エラーになりました。
SELECT
id,customer,visiting_date,state,
(CASE visiting_date
WHEN '' THEN '未訪問'
END) AS state
FROM
customer_table
【 エラー構文は以下の通り 】
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ○○○(何か、文字化けしたような文字です) '' THEN 'ç„¡ã
これは、私の構文作成の内容が間違っているのでしょうか?
エラーの内容を、自分なりに訳しました。
『SQLのシンタックスが間違っています。あなたのMYSQLサーバーのバージョンが一致しているのを確認してください。』
みたいな感じかなと思いました。
(すいません、英語が得意でないので、正しく訳されてないかもしれません)
総じて、何が原因で正常に実行できないのか、自分の実現したいことが叶わないのか、分かりません。
具体的に、
①この時に使う適切な構文として、CASE構文は適切なものですか?それとも、他に、適切な構文がありますか?適切な構文がありましたら、その構文と、具体的な構文の内容を教えて下さい。
②仮に、今回の実現させたい内容についての構文として、CASE構文が適切な構文だとしたら、その構文はどの様になりますか?その構文を具体的に教えて下さい。
③また、仮に、CASE構文が、今回使う適切な構文でないとしても、例えば、このようにすれば、CASE構文も利用可能だよ、と言うのがあれば、是非、そのCASE構文も、具体的に教えて下さい。
④それから、基本的な事ですが、CASE構文というのは、phpMyAdminのバージョンによって使えないとかあるのですか?現在使用しているphpMyAdminのバージョンは、4.0.8です。(ちなみにFUTOKAサーバーを利用していて、サーバー内に標準装備されているphpMyAdminを使用して、今回の実現したい事をやっています)
以上、①~④について、具体的な構文を、ご教示下さいますように、どうぞ、お力添えの程、よろしくお願い申し上げます。
回答4件
あなたの回答
tips
プレビュー