sql >> データベース >  >> RDS >> Mysql

WHERE id IN(1,2,3,4)を使用して均等な分布を取得するにはどうすればよいですか?

    行番号whit変数を設定し、その結果をフィルタリングして、行1〜3のみが機能するように表示します

    SET @last_objectId = 0;
    SET @count_objectId = 0;
    SELECT id, name, image FROM (
    SELECT
     user.id,
     user.name,
     user.image,
     @count_objectId := IF(@last_objectId = rating.objectId, @count_objectId, 0) + 1 AS rating_row_number,
     @last_objectId := rating.objectId
    FROM users
    LEFT JOIN ratings ON (ratings.userid = user.id)
    WHERE
     rating.rating > 0 AND
     rating.objectId IN (1,2,3,4)
    ORDER BY rating.objectId
    ) AS subquery WHERE rating_row_number <= 3;
    



    1. バイナリ文字列をCLOB列に格納できますか

    2. SQL Serverで末尾の空白を削除する方法– RTRIM()

    3. VirtualBoxから仮想マシンを削除する方法

    4. SqlParameterはテーブル名を許可しません-SQLインジェクション攻撃のない他のオプション?