私は以下のように私のユーザテーブルにユーザのリストを持っています。 userid
がに等しくなるまで、私のテーブルからユーザーの数を見つける必要があります。条件に達するまでクエリを選択します
ここで答えは(3)です。しかし、どのように私はMySQLのクエリを見つけることができます。何か案が?
userid name
---------------
10 aaa
30 bbb
100 ccc
60 ddd
私は以下のように私のユーザテーブルにユーザのリストを持っています。 userid
がに等しくなるまで、私のテーブルからユーザーの数を見つける必要があります。条件に達するまでクエリを選択します
ここで答えは(3)です。しかし、どのように私はMySQLのクエリを見つけることができます。何か案が?
userid name
---------------
10 aaa
30 bbb
100 ccc
60 ddd
これは数値の「最初の」インスタンスとしてMySQLで行うことは困難であるが突き止めることが困難であり得ます。ユーザーID = 100
select min(row_number) from
(
SELECT @rownum:[email protected] + 1 as row_number,
p.*
FROM p,
(SELECT @rownum := 0) r
) g
where userid = 100
恐ろしいです。どうもありがとうございます :)。 – Naren
これはあなたの期待を達成するための回避策の1つです。場合
SET @row_number:=0;
SELECT A.row_number FROM (
SELECT Userid, name, @row_number:[email protected]_number+1 AS row_number
FROM UserDetail
) AS A
WHERE A.Userid = 100;
はUserId
はないユニークなIDであれば、それはあなたが追加することができ、繰り返すことができORDER BY
とLIMIT 1
SET @row_number:=0;
SELECT A.row_number FROM (
SELECT Userid, name, @row_number:[email protected]_number+1 AS row_number
FROM UserDetail
) AS A
WHERE A.Userid = 100
ORDER BY A.row_number
LIMIT 1;
与えられたデータと
サンプル実行:
--DROP TABLE UserDetail;
CREATE TABLE UserDetail (Userid INT, name VARCHAR (50));
INSERT INTO UserDetail (Userid, name) VALUES
(10 , 'Aaa'),
(30 , 'Bbb'),
(100, 'Ccc'),
(60 , 'ddd');
SET @row_number:=0;
SELECT A.row_number FROM (
SELECT Userid, name, @row_number:[email protected]_number+1 AS row_number
FROM UserDetail
) AS A
WHERE Userid = 100;
と最小行数を選択し、その後、これは行番号を作成することです解決する
一つの方法は、とにかくインデックス化 'UserId'フィールドですか? –
または、あなたの質問は他のフィールドからの注文ですか? –
テーブルに2列しかない場合、なぜuseridがソートされないのですか? – CSK