はじめて質問させていただきます。 現在、MySQLを使って会員管理用DBを作成しており、以下のようなテーブルを作っています。 ID | Name | Address | UpdateDate 1 | A | 東京 | 2009-10-10 1 | A | 福岡 | 2009-10-11 2 | B | 東京 | 2008-09-02 このようなID毎に複数のデータがある状態で、各IDの最新のデータのみを取得したいのですが、方法がわからずにいます。 大変初歩的な質問かもしれませんが、方法をご存じの方どうかご教授ください。 また、素人なもので、質問の方法が悪いかもしれません。その場合、ご指摘いただければ幸いです。 よろしくお願いします。
MySQLにおけるLIMIT,OFFSET句の説明です。 SELECT文でデータを取得する際に特に何も指定しないと、 条件式にマッチしたデータが全て取得されます。 ですがこのLIMIT句を使うと取得件数を指定することができます。 SELECT カラム名 FROM テーブル名 LIMIT 取得件数; 例えば、10件だけ取得したい場合は、 SELECT * FROM test LIMIT 10; というようになります。 もうひとつのOFFSET句は取得を開始する位置を指定することができます。 例えばOFFSET句に3を指定した場合は、最初の3件分のデータは取得しないで、 その次のデータから取得するようになります。 書式は以下の通りです。 SELECT カラム名 FROM テーブル名 LIMIT 取得件数 OFFSET 開始位置; //以下の書式も可能 SELECT カラム名 FROM テーブル
MySQLで行番号を表示したいとき。OracleにはROW_NUMBERってのがあるので、似たような機能がないか探したところ面白い方法を見つけた。 良く紹介されているのは、ユーザー変数を利用して、 set @i:=0; select @i:=@i+1 as rownum,user_id from user; という感じで、2つSQLを発行するパターン。 これを1つのSQLで行う方法があった。 select @i:=@i+1 as rownum,user_id from (select @i:=0) as dummy,user; サブクエリでユーザー変数を初期化している。 こんな発想はなかったなぁ。素晴らしい。 これでそれっぽく行番号を取得できるのだが、 MySQLのサイトの8.4. ユーザによって定義された変数にて、以下の内容があった。 ユーザ変数の評価順序は定義されておらず、与えられたク
この記事には続きがあります グループ内の上位 N 件を抽出する SQL はストアドでいいんじゃない? - ngの日記 MySQL で簡単に出来そうで出来ない SQL に「グループ内の上位 N 件を抽出する SQL」があります。年に 1 回ぐらいこの問題について考え、毎回同じ結論になり「あれー去年も同じこと考えた気がするなー」となっているので、来年も同じことを考えるであろう自分に向けてメモを残しておきます。 なお、この内容は MySQL 5.5.19 で試しています*1。 (2012/07/26 追記:テストデータを増やした、users の name が抽出されていないのを修正) テストデータ drop table if exists groups; drop table if exists users; create table groups ( gid int not null prim
@IT MONOist会議室終了(2011年3月31日)のお知らせ @IT MONOistは4月1日より、アイティメディアIDでの読者登録を開始しました。これに伴い、@IT MONOistでの@ITクラブのサービスを2011年3月31日で終了し、@IT MONOist会議室への新規書き込みを終了いたしました。なお、その他の@IT会議室、@IT情報マネジメント会議室、@IT自分戦略研究所会議室は今後も継続してご利用のほどお願いします。 できそうでできなくて悩んでるの、助けていただきたいです。 mysql> select * from test; +----+------+-------+---------------------+ | id | name | class | created | +----+------+-------+---------------------+ | 1
ナップザックは、システム開発/ソフトウェア開発の設計・開発事務所です。 株式会社ナップザック © 2013-2018 NAPZAK Inc.
暑さに参っているしがないプログラマです。 かれこれ◯年もPHP, MySQLを触って来ましたがまだまだ無知であるとこの度痛感させられました。 タイトルの通りMySQLのgeometry型です。 先日はじめて知りました。。。(*_*; 今まで緯度経度情報をDBにほりこんでGoogle Mapでプロット表示・・・とかはよくやっておりましたが、長年距離の計算ってどうやるんだろ・・・現在地から近い順とかどうやるんだろ・・・と思っておりました。 (PHPでゴリゴリやらないといけないのかなーと・・・) まぁ・・・もっと調べろ!!!って話ですが、、、、 備忘録として簡単に使い方を記しておきます。 Asialさんのブログを参考にしましたので、そちらもあわせて見てみて下さい。 http://blog.asial.co.jp/473 テーブル作成時のフィールドのデータ型はタイトルの通り、geomet
SQLアンチパターン 作者: Bill Karwin,和田卓人(監訳),和田省二(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購入: 9人 クリック: 674回この商品を含むブログ (18件) を見る DBMSを使う人なら誰もがハマるNullの取り扱いだが、結論から言うとDBMSのNullはよくあるプログラム言語のそれとは違うので、新しい物として正しく理解しようという事。Nullを怖がっては真っ当なデータ設計は出来ない。 DBMSにおけるNullとは 先に述べたように、DBMSのNullとアプリ側のNullは全くの別の物です。アプリ側のNullは値が存在しない事を示すのに対し、DBMSのNullは値が不定であることを示します。(3値論理と言われる概念が導入されています。) そのため、以下のSQLをMySQLで実行すると、Nullが結果
この文書は、osCommerceで使用しているデータベースMySQLの基本的な使い方について解説しています。おもにデータベースの管理者よりも、ユーザに向けて書かれています。 はじめに ここでは、MySQLサーバは起動しているものとして説明します。 MySQLの文字について MySQLでは、データベース名やテーブル名の大文字と小文字を区別しています。それ以外は区別しません。 MySQLのフィールド名やテーブル名に使える文字は、英数字と_(アンダーバー)、$、サーバのキャラクタセットにある文字です。 知っておきたいコマンド mysqladmin(データベースの作成・削除や、MySQLサーバの情報を得る) mysqlshow(データベース、テーブルの情報を表示する) mysql(MySQLクライアントの起動) mysqldump(データベース、テーブルをダンプする) myisamchk(テーブル
今回はdockerコンテナで動くmysqlデータをホストOS上にセーブすることで、 commitしなくてもデータを維持する!ということをしてみます。 今まではコンテナ落とす度にちゃんとcommitしないと、次に起動するときにデータが無くなり Immutable Infrastructureとは程遠い感じになっていたので サーバーは機能だけを提供して、データは別にするという疎結合な感じにするっていうのがモチベーション。 本日の参考サイトはこちら↓ http://www.zabbix.jp/documents/installation/install-rpm http://cpw.hatenadiary.jp/entry/2013/08/20/220306 考え方としては、ホストOSにmysqlデータを格納してそれをコンテナがマウントして使うって感じ。 docker+zabbixの回で既にmy
MySQLをサービスとして提供するコンテナを作成してみました。データの永続化までやりたかったのですが上手く行かず。いい方法あれば教えてくださいorz ソースはここ https://github.com/yss44/docker_mysqld Dockerfileのレシピはこちら # DOCKER-MYSQLD # # VERSION 1 FROM centos MAINTAINER yoshiso RUN yum -y update #Dev tools for all Docker RUN yum -y install git vim RUN yum -y install passwd openssh openssh-server openssh-clients sudo ########################################## sshd ##########
さくらのVPS上に構築してみた。仮想サーバー上にDockerってアリなんでしょか。ま、とりあえず出来たのでメモ。CentOS6.5です。 Dockerインストール まずDockerをインストールします。外部リポジトリEPELをインストールしなければいけないんですが、さくらのVPSでは既にリポジトリファイルが入ってましたのでパスします。 [bash] ls -l /etc/yum.repos.d/ [/bash] [code gutter=”false”] total 28 -rw-r–r–. 1 root root 1926 Dec 1 2013 CentOS-Base.repo -rw-r–r–. 1 root root 638 Dec 1 2013 CentOS-Debuginfo.repo -rw-r–r–. 1 root root 630 Dec 1 2013 CentOS-Med
お知らせ: CentOS 6.5 でも同じ手順でインストールできることを確認済みです。 CentOS の標準リポジトリからインストールできる MySQL は未だに 5.1 系です。 5.5 以降の圧倒的な速さを知っているので、今さら 5.1 は使う気になりません。 というわけで、CentOS 6.4 に RPM パッケージからインストールする手順です。 4/29 時点の最新バージョンは MySQL 5.6.11 です。バージョンはその時の最新に読み替えてください。 Download MySQL Community Server まずは RPM ファイルをダウンロードします。 wget -q http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.11-1.el6.x86_64.rpm \ http://dev.mysql.
Dockerでデーモンを動かそうとするとinitctlがうまく動かないので、service start mysqlとか出来ないんです。だから直接mysqld_safeを起動するのですが、baseイメージからDockerfileでインストールすと、簡単にインストールできない。というのも、apt-get install mysql-serverしたときにいろいろオプションを対話的に入力しろといわれるので、Dockerfileで素直には出来ないんです。 いろいろ調べてみると、そういったパラメタをあらかじめ設定してインストールする方法があって、debconf-set-selectionsというコマンドがそれに相当するみたいです。もっと簡単にできる方法を id:nkwhr さんに教えてもらいました。DEBIAN_FRONTEND=noninteractiveと環境変数に設定すればいいみたいです。下記
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く