ホームページ >バックエンド開発 >PHPチュートリアル >ポイント表があり、上位から順にポイントが並べられています。ユーザーのランキングとポイントを取得するにはどうすればよいですか?

ポイント表があり、上位から順にポイントが並べられています。ユーザーのランキングとポイントを取得するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:36:581483ブラウズ

SQL ステートメントは

select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time
です

この SQL ステートメントに基づいてユーザーのユーザー名とポイントをクエリするにはどうすればよいですか。

または、php でそれを取得するにはどうすればよいですか?


ディスカッションに返信 (解決策)

ユーザー名を知っていますか? ユーザー名 = ユーザー名であるテーブルからポイントを直接選択します。

SELECT * FORM   (    select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分    from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time  ) T WHERE username='XXX'

このユーザー変数の定義方法は依然として非常に賢いです

SELECT * FORM   (    select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分    from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time  ) T WHERE username='XXX'

このユーザー変数の定義方法は依然として非常に賢いです

SELECT * From  (    select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分    from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time  ) T WHERE username=18511337033'


このように書くと、where 条件を追加すると、 where 条件がなければ正常です。

以下はエラーメッセージです。
[SQL] SELECT * From  (    select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分    from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time  ) T WHERE username=18511337033'[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 6

これがテーブル構造です


SELECT * FORM   (    select a.username,(@rowNum:=@rowNum+1) as c,a.integral as 积分    from xs_user a,(Select (@rowNum :=0 ) ) b order by integral DESC,time  ) T WHERE username='XXX'

ユーザー変数を定義するこの方法は、やはり非常に賢いです

読み間違えました。 。それは私自身の問題です。 。ごめん。 。 3Q ありがとうございました。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。