0
与えられたクエリのフィールド値あたりの行数を制限しようとしています。私は、次の表を作成した、リンクの最初の答えのようにフィールド値あたりの行数を数えて制限することはできません
:
create table mytab (
id int not null auto_increment primary key,
first_column int,
second_column int
) engine = myisam;
は、このデータを挿入:
insert into mytab (first_column,second_column) values
(1,1),
(1,4),
(2,10),
(3,4),
(1,4),
(2,5),
(1,6);
私はこの質問に答え見つけました
最後にこのクエリを実行します。
select
id,
first_column,
second_column,
row_num
from
(select
*,
@num := if(@first_column = first_column, @num + 1, 1) as row_num,
@first_column:=first_column as c
from mytab
order by first_column,id) as t,
(select @first_column:='',@num:=0) as r;
しかし、その代わりに、この結果を得るための、どこROW_NUM増加FIRST_COLUMNが繰り返されるたびに、
+----+--------------+---------------+---------+
| id | first_column | second_column | row_num |
+----+--------------+---------------+---------+
| 1 | 1 | 1 | 1 |
| 2 | 1 | 4 | 2 |
| 5 | 1 | 4 | 3 |
| 7 | 1 | 6 | 4 |
| 3 | 2 | 10 | 1 |
| 6 | 2 | 5 | 2 |
| 4 | 3 | 4 | 1 |
+----+--------------+---------------+---------+
私はこの結果を得る:
+----+--------------+---------------+---------+
| id | first_column | second_column | row_num |
+----+--------------+---------------+---------+
| 1 | 1 | 1 | 1 |
| 2 | 1 | 4 | 1 |
| 5 | 1 | 4 | 1 |
| 7 | 1 | 6 | 1 |
| 3 | 2 | 10 | 1 |
| 6 | 2 | 5 | 1 |
| 4 | 3 | 4 | 1 |
+----+--------------+---------------+---------+
私は文字通りのリンクからコードをコピーしました。私はSQL Fiddleをチェックし、コードは正常に動作します。私はXAMPPを使用しています。それが理由だろうか?そうであれば、上記のようなものを得るための回避策はありますか?
本当にありがとうございました。前もって感謝します。
心から感謝する。私がコピーしたコードがSQL Fiddleで動作するように見えるということは、私がまだ困惑しています。いずれにせよ、ありがとう! – jzeta