[前][次][番号順一覧][スレッド一覧]

mysql:8127

From: "Kawaji, Shinya" <"Kawaji, Shinya" <kawaji@xxxxxxxxxx>>
Date: Sun, 10 Aug 2003 08:17:13 +0900
Subject: [mysql 08127] Re: 特定フィールドの異なりによる抽出

かわじ、です。


> 期待するのは、min(ID) に対応する NOTE を得ることなのですが、
> min(NOTE)を取ってしまうと、min(ID) と min(NOTE) を「組合わせ
> た」新しいレコードを作ることになり、結果が異なってしまいます。

私の提案させていただいた SQL では、お望みの結果になりますが、
実際に試してみて、結果が違いましたか?

-- SAMPLE の create table 文は以下の通り
create table SAMPLE (
  ID int auto_increment,
  SOURCE text,
  CONTENT text,
  NOTE text,
  primary key (ID)
);


mysql> select * from SAMPLE;
+----+--------+---------+------+
| ID | SOURCE | CONTENT | NOTE |
+----+--------+---------+------+
|  1 | A      | x       | klm  |
|  2 | A      | x       | abc  |
|  3 | A      | y       | vwx  |
|  4 | B      | y       | opq  |
|  5 | B      | y       | hjk  |
|  6 | C      | x       | def  |
|  7 | C      | y       | rst  |
+----+--------+---------+------+
7 rows in set (0.00 sec)

mysql> select
    ->   0 + left(  min(concat(lpad(ID, 10, '0'), ID) ), 10) as ID,
    ->   SOURCE,
    ->   CONTENT,
    ->   substring( min(concat(lpad(ID, 10, '0'), NOTE)), 11) as NOTE
    -> from
    ->   SAMPLE
    -> where
    ->   CONTENT = 'x'
    -> group by
    ->   SOURCE
    -> ;
+------+--------+---------+------+
| ID   | SOURCE | CONTENT | NOTE |
+------+--------+---------+------+
|    1 | A      | x       | klm  |
|    6 | C      | x       | def  |
+------+--------+---------+------+
2 rows in set (0.00 sec)

mysql> select
    ->   0 + left(  min(concat(lpad(ID, 10, '0'), ID) ), 10) as ID,
    ->   SOURCE,
    ->   CONTENT,
    ->   substring( min(concat(lpad(ID, 10, '0'), NOTE)), 11) as NOTE
    -> from
    ->   SAMPLE
    -> where
    ->   CONTENT = 'y'
    -> group by
    ->   SOURCE
    -> ;
+------+--------+---------+------+
| ID   | SOURCE | CONTENT | NOTE |
+------+--------+---------+------+
|    3 | A      | y       | vwx  |
|    4 | B      | y       | opq  |
|    7 | C      | y       | rst  |
+------+--------+---------+------+
3 rows in set (0.00 sec)



[前][次][番号順一覧][スレッド一覧]

      8122 2003-08-09 21:39 ["TOYOSHIMA,Masayuki"] 特定フィールドの異なりによる抽出        
      8123 2003-08-09 22:33 ┣[yamada <tirutiru@xxx]                                       
      8124 2003-08-09 22:53 ┃┗[yamada <tirutiru@xxx]                                     
      8125 2003-08-09 23:37 ┗["Kawaji, Shinya" <ka]                                       
      8126 2003-08-10 07:21  ┣["TOYOSHIMA,Masayuki"]                                     
->    8127 2003-08-10 08:17  ┃┗["Kawaji, Shinya" <ka]                                   
      8128 2003-08-10 08:59  ┃ ┗["TOYOSHIMA,Masayuki"]                                 
      8129 2003-08-10 09:24  ┗["KAWAI,Takanori" <GC]                                     
      8130 2003-08-10 13:07   ┗["TOYOSHIMA,Masayuki"]