- 締切済み
条件によってレコードを取得したい
Mysqlで以下のような条件のSQL文がわかりません。 hogeというフィールドの値に1があればそのレコードを取得 hogeに1という値のフィールド値をもったレコードがないならhogeが空のレコードを取得したいのですが方法がわかりません。 SELECT * FROM `tebleA` where (`hoge` = '1') or `postageFee_memId` = '' LIMIT 5 上のSQL文ではどうしても「`postageFee_memId` = '' 」のほうが優先されます。 (優先されるのはオートインクリメントIDが小さいから当然ですが・・) 「`hoge` = '1'」が絶対優先されるようにしたいのです。 いわゆる 「`hoge` = '1'」がない場合だけ「`postageFee_memId` = ''」が実行できればと思います。 ifとかを使って条件文をかけばいいのでしょうか? 足らずの情報があればおっしゃってください。 何卒ご教授お願いいたします。
- みんなの回答 (4)
- 専門家の回答
補足
失礼いたしました。 すこし記述ミスがありましたので訂正 SELECT * FROM `tebleA` where (`hoge` = '1') or `postageFee_memId` = '' LIMIT 5 ↓ SELECT * FROM `tebleA` where (`hoge` = '1') or `hoge` = '' LIMIT 5 です。もちろん上のSQLは私が勝手に考えたものですからうまく処理してくれないものとしてご認識ください。 無数のレコードにはhoge(実際はmember_idとしています)のなかに数列が入ります。 もしhogeに1があるレコードがあればLimit5まで取得し、もしhogeに1がなければhogeに空のものを limit5取り出したいのです。 何がしたいかといいますと、`hoge` = ''は5つ最初からレコードがあり、会員の初期値的な設定レコードとしています。 会員が初めて初期設定する際に設定レコードがない場合はhoge=''の初期値を呼び込みたいのです。 ややこしい説明でもうしわけないです。 これでご理解いただけますでしょうか?