電子書籍の厳選無料作品が豊富!

ズブの素人です。
わけあって素人である私がssh接続でサーバーをいじらねばならず、
データを直接書くことの恐さだけは知っているため、非常にビクビクしています。
教えてくれる人もおらず、大変困っております;

どうしてこんなことになってしまったか、それが一番の問題なんですが、
直下の問題に対応するため、何卒知恵を頂戴いただけますと幸いです。

本当に素人なので稚拙な質問になってしまうと思いますが、
何卒教えていただけますと幸いです。
(mysqlに触るのも、SSHログインするのも人生初です)


■やりたいこと
『_utf8』というデータベースの中に『blog』のテーブルがあり、その中にブログがたくさん入っています。
ブログには作成者の項目が紐づいており、また、公開/非公開を決めるフラグ(0で公開、1で非公開)がついています。

今とある作成者(仮にtanaka)が書いたブログの中で、
2013/1/1までに書かれたブログを非公開にしたい(非公開フラグを1にしたい)です。

■自力で調べたところまで
自分で調べた結果が下記のmysqlなのですが、

フラグを1にする、UPDATEの文章と
範囲を指定する、SELECTの文章の紐付けが
全く自身がありません。。。

=========
UPDATE `blogdb_utf8`.`blog` SET `blog_trash` = '1' SELECT *
FROM `blog`
WHERE `user_id` LIKE 'tanaka'
AND `send_time` <= '2013-01-01 00:00:00'
=========
正直絶対どこか間違っているという
逆の自信だけございます。


■さらに御聞きしたいこと
teratermからsshログインというものを人生初しました。

ログインしたあと、ここからどこにcdして、上記の実行文を入れたら良いかがわかりません。。。


おそらく非常に初心者な質問をしているのだろうと自覚しておりますが、
何卒よろしく御願い致します

A 回答 (2件)

>ちなみに(1)のmysqlにログインというのは、



ああ、なるほどズブの・・・

ユーザー名とパスワードなどログイン情報わかっているのでしょうか?
mysqlのコンソールにログインするには

mysql -u ユーザー名 -p

として、パスワードを入力します。
もしログイン情報がわかっていないなら無理なのであきらめてください
ちなみに管理者がセキュリティを少しでもきにしているなら
sshでログインするときのユーザー名とパスワードとは異なるものが
設定されていると思います。
    • good
    • 0

構文だけの話をすれば以下のような感じ?



(1)mysqlにログイン

(2)use `blogdb_utf8`[エンター]
で、データベースにはいり

(3)以下SQL文を実行
UPDATE `blog` SET `blog_trash` = '1'
WHERE `user_id`='tanaka'
AND `send_time` < '2013-01-01 00:00:00' \g[エンター]

(4)作業後「\q[エンター]」でぬける

ちなみに、send_timeのデータ型がdatetimeであるのが前提、date型の場合
若干範囲指定の仕方がかわってきます。
また「2013/1/1までに書かれたブログ」の言葉の定義が、
「12/12/31 23:59:59までに書かれたもの」の場合の処理です。
もし1/1の終日であれば

`send_time` <= '2013-01-01 23:59:59'

みたいなことになると思います。

※危険を顧みずやっている状況は伝わってきます。
ただ、不慣れな方が見よう見まねでやってデータを消してしまったり
整合性が取れなくなってしまう場合もあるので、十分注意の上、
ノークレームで対応ください
    • good
    • 0
この回答へのお礼

大変ありがとうございます。

ちなみに(1)のmysqlにログインというのは、

cd mysql

であっておりますでしょうか。

お礼日時:2013/04/24 19:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!