質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.62%

order byに関して分からないことがあります

解決済

回答 6

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,376

a-_.

score 131

ORDER BY ~ DESCってどういう意味ですか

追記
テーブル:「name(int)」「comment(varchar)」「time(timestamp)」
リンク内容

$mysqli = new mysqli($host, $user, $password, $dbname);
if ($mysqli->connect_error){
    print("接続失敗:" . $mysqli->connect_error);
    exit();
    }

    $stmt = $mysqli->prepare("INSERT INTO XXX (name, comment) VALUES (?, ?)");
    $stmt->bind_param('ss', $_POST["name"], $_POST["comment"]);
    $stmt->execute();

    $query = "SELECT * FROM XXX";

    $result = $mysqli->query("SELECT * FROM XXX ORDER BY time DESC");
if($result){
        while($row = $result->fetch_object()){
        $name = htmlspecialchars($row->name);
        $comment = htmlspecialchars($row->comment);
    }
}

$mysqli->close();
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/07/12 16:43

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • m6u

    2016/07/12 16:55

    INSERT INTO文やSELECT文の対象になっているテーブルの構造を示してもらわないと、SQL文から想像したあてずっぽうな回答にしかなりませんので、簡単にでもテーブル構造を示してください。どういうカラムを含んだテーブルなのかと。あるいは、プログラミングを学習しているところなのであれば参考にしているサイトやドキュメントのたぐいも示してください。

    キャンセル

  • m6u

    2016/07/12 16:57

    後に似たようなケースの質問を招かないよう、適切な質問の題名をつけてください。例えば「ORDER BY created DESCの部分がわかりません」とか。質問につけるタグも、PHPだけでなくMySQLもつけるとより素早く解決に近づくと思います。

    キャンセル

  • a-_.

    2016/07/12 17:06

    m6uさん
    失礼しました

    訂正いたしました

    キャンセル

回答 6

+3

>ORDER BY created DESCってどういう意味ですか
selectの部分が見れませんが、選択テーブルには、createdという項目名が存在して、この項目の降順に出力したいのでは無いでしょうか?

追記:テーブルXXXには項目createdが有りdefault current_timestampの設定がされている??
Mysqlはcreated項目が自動的に存在しているのですね、訂正です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/12 16:49

    ご回答ありがとうございます

    デフォルト値:CURRENT_TIMESTAMP
    created項目はありません。

    キャンセル

+2

抽出結果をcreatedカラムの降順にソートするということです。

まず自分で調べましょう。
タイトルから内容が想像できません。不適切です。
タグが違います。SQLについての質問なので、SQLMySQLなど適切なタグをつけてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

STEP1-7の手順通りにテーブルを作成していれば、
テーブルにcreatedというカラムが作成され、
STEP1-9でのSELECT文でORDER BY created DESCというのは、
そのcreatedカラムのデータを降順で並べ替えて取得する意味になります。


以下余談。
実務においても、データを登録した日付時刻やデータを更新した日付時刻で並べ替えする場面があり、
created_atやupdated_atなどのカラム名でtimestamp型でテーブルに持たせることがあります。
昇順に並べ替えるときはASC、降順に並べ替えるときはDESCですが、ASCは大概省略されます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/12 17:26

    ご回答ありがとうございます

    降順という意味ではarsortとはまた異なるのでしょうか

    キャンセル

  • 2016/07/12 17:30

    並べ替えをデータベース側にやってもらうために、SQL文にORDER BY句をつけていますよね。
    これ、データを全部抽出してPHP側でsort()やarsort()などでやれそうな気がしますが、データ件数が何万行何百万行となっていった場合にPHP側では捌ききれません。データの並べ替えなどデータ処理は(データ処理に特化している)データベースに任せるべきなのです。

    キャンセル

+1

https://team-lab.github.io/skillup/1/7.html
STEP1-7.データベースを作成してみる
にて以下のような3つのカラムがあるdatasテーブルを作成しましょうとありますが
そのように作りましたか?

名前    データ型    照合順序    デフォルト値
name    TEXT    utf8_general_ci    
message    TEXT    utf8_general_ci    
created    TIMESTAMP        CURRENT_TIMESTAMP

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/07/12 17:13

    ご回答ありがとうございます

    createdの箇所はtimeです

    キャンセル

  • 2016/07/12 17:14

    でORDER BY created DESCってどういう意味ですかの答えは
    STEP1-8.SQLを書いてみる
    https://team-lab.github.io/skillup/1/8.html
    ORDER BY句
    に答えがあるのです
    ORDER BY句

    データの並び順を指定します。

    SELECT * FROM datas ORDER BY created DESC

    これは日付の若い順(降順)に取り出すクエリです。

    キャンセル

+1

http://www.accessclub.jp/sql/10.html
http://sasuke.main.jp/order.html

参考にしてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

MySQL マニュアル DESC

でググりましたか?
最初にヒットした
MySQL 5.6 リファレンスマニュアル...SELECT 構文 に

逆の順序でソートするには、ソートに使用する ORDER BY 句内のカラムの名前に DESC (降順) キーワードを追加します。

が見つかります。
SQLはなめてかからないで、きちんと勉強してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る