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

Php宝くじは複数の勝者の問題を発行します

    選択した番号に対して間違ったストレージ形式を選択したと思います。標準的なアプローチは、数値Nが選択された場合、N番目のビットが設定されたバイナリ値を使用することです。

    この例を考えてみましょう。ユーザーは「245911」という数字を選択します。対応するビットを1に設定すると、10進数の1306である「10100011010」が得られます。宝くじは「1100101001000」==6472である「479 12 13」を選択します。両方の値に対してビット単位のANDを実行し、結果:

    SELECT BIT_COUNT(1306 & 6472)
    

    これは、ユーザーが2つの正しいピックを持っていることをすぐに示します。同様に簡単に「完全な」勝者を選択できます:

    SELECT * FROM tickets WHERE BIT_COUNT(tickets.pick & lotto.pick) = 5
    

    または、正しいピックの数でチケットを並べ替えます

    SELECT * FROM tickets ORDER BY BIT_COUNT(tickets.pick & lotto.pick) DESC
    


    1. OracleDatabaseのPL/SQLストアドプロシージャとは

    2. MySQL CASE ... WHERE...THENステートメント

    3. php-最後の挿入IDを取得

    4. 複雑なGroupBy後の前の行/日からの増加率を計算するにはどうすればよいですか?