Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。1のレコードを抽出したい。5のレコードが存在する場合、そのレコードの方を優先して抽出したい。そのような構文を組み立てることは出来るでしょうか?よろしくお願いいたします。5のレコードを指定することで条件に合う2レコードを1行で取得できます。5のレコードの情報です。5のレコードが存在しなければ5列目以降はnullになります。SQLの結果を取得して5列目以降がnullかどうかを判定すれば目的の結果が得られます。解2解1のSQLをサブクエリーにして、外側のselectでuser_id=5が存在するかどうかを判定することでも目的の結果が得られます。個の銅バッジ書き方が悪かったかもしれませんが、単純に1行の結果が欲しいというよりは、categoryの種類が無数にあるため、複数行の結果を返したいと考えています。10:54複数のcategoryがあるとのことなので、複数に対応している解1のみに修正しました。11:51サブクエリーを使用してuser_id=5が存在するかどうかを判定する方法を追加しました。12:111解2はサブクエリにしなくてもできますよ。確かに仰る通り、サブクエリーは不要ですね。category;でいかがでしょうか。categoryで重複がなくなる(5が優先される)ようになるはずです。個の銅バッジ求めていたのは、まさにこういう事でした。by句の前に持ってくる事ができませんでした。エラーになってしまいます。by句を最後に持って来た場合、group化した結果をソートしてしまい、目的を達成できませんでした。5だけのユーザーも抽出されてしまう、という問題がありますね。さんの解1のような方法でSQLで出せるところまで出し、あとはプログラムでなんとかするのが素直かと思いました。スマートな回答ができずすみません。=1かつuser_id=5のレコードがないセットと、user_id=5のセットを取り出すSQLをunionでつないで作ってみました。優先抽出の解釈ですが、同一category内にuser_id=5がある場合は、user_id=1のレコードを返さない仕様です。個の銅バッジexistsのサブクエリーですが、この条件だと「user_id=5以外が存在する」となっているのでuser_id=1のレコードがあるので必ずtrueになってしまいます。1:27ご指摘ありがとうございます。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。入れ子集合モデル、子から見た親を出力する方法0中間テーブル同士を比較して取得するSQL文をかきたいです。100というステートメントでは、ロックする必要がありますか0MySQLのSQLで重複をのぞいた数をカウントしたい1mysqlのクエリにおいて、「1の結果がなければ、2の条件で探す」というような表現は可能でしょうか。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。