MySQL:ORDER BY句でデータを昇順、降順にソート

MySQLでデータをソートして取得したい場合があります。

ORDER BY句を使用すると取得するデータを指定したフィールドで
昇順降順ソートしながら取得することができます。
昇順でソートする場合は「ASC」を指定し、降順でソートする場合は「DESC」を指定します。

データベースのデータを取得してからプログラムでソートするよりは、
データ取得時にソートして処理する方がいいと思います。

下記にSELECT文ORDER BY句を使用しデータを昇順降順ソートして取得する時の使用方法をメモします。


ORDER BY句でデータをソート(昇順・降順)

※データが下記の場合

MySQL_ORDER_BY_1

・昇順でソートする場合(ASC)

昇順でソートするフィールドにASCを指定します。

SELECT * FROM sample ORDER BY name ASC;

「ASC」を指定しない場合は昇順でソートされます。

SELECT * FROM sample ORDER BY name;

MySQL_ORDER_BY_2

・降順でソートする場合(DESC)

降順でソートするフィールドにDESCを指定します。

SELECT * FROM sample ORDER BY name DESC;

MySQL_ORDER_BY_3


ORDER BYを複数指定してソートする場合

ORDER BYを複数指定する場合は、優先順位の高いものから順番に「,」で区切って指定します。
下記は「name」を昇順ソートし、「id」を降順ソートした場合です。

SELECT * FROM sample ORDER BY name ASC, id DESC;

MySQL_ORDER_BY_4


ORDER BYとLIMITを使用する場合

ORDER BYとLIMITを組み合わせた場合は下記のように記述します。
ORDER BYはLIMITよりも前に記述しないとエラーが起きるので注意です。

SELECT * FROM sample ORDER BY id DESC LIMIT 5;

MySQL_ORDER_BY_5

MySQL:LIMIT句で取得件数を指定してデータ取得

MySQLSELECT文でデータを取得する際に取得する件数指定してデータを取得したい場合があります。

取得する件数を指定する場合はLIMIT句を使用すると件数を指定することができます。
また、OFFSET句を組み合わせるとデータを取得する開始位置を指定することが可能です。

MySQLでデータを取得する時にLIMIT句OFFSET句を使用して、
取得件数開始位置を指定してデータを取得する方法をメモします。


LIMIT句、OFFSET句を使用してデータを取得

※データが下記の場合

mysql_limit_1

LIMIT句で取得する件数を指定します。

SELECT * FROM sample LIMIT 5;

実行すると下記のように指定した件数でデータを取得できます。

mysql_limit_2

次にOFFSET句を使用するとデータを取得する開始位置を指定できます。

SELECT * FROM sample LIMIT 10 OFFSET 5;

実行すると下記のように開始位置から指定した件数のデータを取得できます。

mysql_limit_3

また、OFFSET句は省略して記述することも可能です。

SELECT * FROM sample LIMIT 5, 10;

取得件数と開始位置の記述する順番が逆になるので注意が必要です。


ページネーションを使用しているページのデータを取得・表示する時など、
LIMIT句とOFFSET句を使用すると便利です。

Linux:mkdirコマンドでディレクトリを作成する

Linuxで新規にディレクトリフォルダ)を作成する場合は「mkdirコマンドを使用します。

mkdirコマンドではオプションでパーミッション(権限)を指定したり、
親ディレクトリとサブディレクトリを同時に作成することも可能です。

Linuxmkdirコマンドを使用した時の方法とオプションの使用方法をメモします。


mkdirコマンド

mkdirコマンドは新規にディレクトリを作成します。

mkdir [オプション] [ディレクトリ]

mkdirコマンドのオプション

-m:パーミッションを指定します。
-p:親ディレクトリとサブディレクトリを同時に作成します。

mkdirでディレクトリを作成

作成したいディレクトリを指定します。
下記は「test」というディレクトリ作成した場合です。

mkdir test

パーミッションを指定する場合は下記のように記述します。
「777」で設定した場合です。

mkdir -m 777 test

親ディレクトリとサブディレクトリを同時に作成する場合は「-p」オプションを指定します。

mkdir -p aaa/bbb

「-p」を指定しないとエラーになってしまうので注意です。

#mkdir aaa/bbb
mkdir: ディレクトリ `aaa/bbb' を作成できません: そのようなファイルやディレクトリはありません

jQuery:マウスオーバーした画像をメインの画像に反映

jQueryサムネイル画像マウスを置いた場合、メイン画像差し替えて表示したい場合があります。

jQuery_image_hover

ショップシステムなどの商品画像の表示で見かけることが多いです。
また、写真などのギャラリーページなどでも同じような表示の仕方をしていることがあります。

jQueryを使用すれば簡単にサムネイル画像とメイン画像を入れ替えることが可能です。

下記にjQueryの「hover」を利用してサムネイル画像マウスオーバーした際に、メイン画像差し替えて表示する方法を記述します。


マウスオーバーした画像をメインの画像に反映

HTML

メイン画像とサムネイル画像を表示します。
「mainImage」の箇所に最初に表示する画像を設定します。

<div id="mainImage">
    <img src="sample1.jpg" />
</div>

<div id="imageList">
    <ul>
        <li><img src="sample1.jpg"></li>
        <li><img src="sample2.jpg"></li>
        <li><img src="sample3.jpg"></li>
        <li><img src="sample4.jpg"></li>
        <li><img src="sample5.jpg"></li>
    </ul>
</div>

CSS

<style type="text/css">
div#imageList ul {
    margin: 10px;
    padding: 0;
}
div#imageList li {
    float: left;
    list-style-type: none;
    margin-left: 5px;
}
div#imageList li img {
    width: 50px;
    height: 50px;
}
</style>

JS

jQueryを読み込み、マウスオーバーした場合の処理を記述します。
サムネイル画像をマウスオーバーした場合、マウスオーバーしている画像の「src」をメイン画像の「src」に反映させています。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){

    // 「imageList」内の「img」をマウスオーバーした場合
    $('#imageList img').hover(function(){

        // マウスオーバーしている画像をメインの画像に反映
        $('#mainImage img').attr('src', $(this).attr('src'));

    });

});
</script>

上記の設定をし、サムネイル画像をマウスオーバーするとメイン画像が入れ替わって表示されます。

jQuery:ページスクロール時に「ページトップへ」を表示

WEBページスクロールした時に「ページトップへ」の表示を画面の下の方に出現させるのを見かけることが多くなっています。

jQueryで実装すれば簡単に設置させることが可能です。

長いページの場合など常に「ページトップへ」のリンクが画面にあれば、ユーザビリティ的にも良いと思います。

下記のサイトを参考にさせてもらいました。ありがとうございます。

http://www.webopixel.net/javascript/538.html

今回はjQueryで画面をスクロールした時に画面下部に「ページトップへ」のリンクをフェードさせて表示する方法をメモします。


スクロールした時に「ページトップへ」を表示

js

jQueryを読み込み、スクロールした時の処理を記述します。
最初に「ページトップへ」の要素を非表示にして、指定したスクロール位置を超えた場合に「ページトップへ」の要素をフェードインして表示するようにしています。
また指定したスクロール位置よりもスクロール位置の値が小さい場合はフェードアウトします。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script type="text/javascript">
$(function(){

    // 「ページトップへ」の要素を隠す
    $('#pagetop').hide();

    // スクロールした場合
    $(window).scroll(function(){
        // スクロール位置が100を超えた場合
        if ($(this).scrollTop() > 100) {
            // 「ページトップへ」をフェードイン
            $('#pagetop').fadeIn();
        }
        // スクロール位置が100以下の場合
        else {
            // 「ページトップへ」をフェードアウト
            $('#pagetop').fadeOut();
        }
    });

    // 「ページトップへ」をクリックした場合
    $('#pagetop').click(function(){
        // ページトップにスクロール
        $('html,body').animate({
            scrollTop: 0
        }, 300);
        return false;
    });

});
</script>

css

スクロールしても位置を固定させる為に「position: fixed;」を指定します。
また、配置する位置を「bottom」「right」で指定します。

<style type="text/css">
#pagetop {
    position: fixed;
    bottom: 10px;
    right: 10px;
}
</style>

html

ページのbody内に「ページトップへ」要素を記述します。

<p id="pagetop"><a href="#">ページトップへ</a></p>

画像を表示させる場合は下記のように指定します。

<p id="pagetop"><a href="#"><img src="pagetop.jpg"></a></p>

上記を設定してスクロールすると指定した位置までスクロールした時に「ページトップへ」要素が表示されるようになります。
スタイルなどを調整すればオシャレな表示になると思います。