0

モデルの行をいくつかフェッチしていますが、ビューには非常に多くの基準があり、多くのモデルを書くのにうんざりしていました.作業を簡単にするために、選択したすべての基準に対して新しい選択ステートメントを書きたくないので、最初は利用可能な条件の 1 つ以上がユーザーによって提供されている/提供されていない場合でも、選択から何かを返します。

SELECT * FROM members WHERE member_id = null AND member_club_id = 1 AND membership_year = null;

そして何も返さない

最後に私は試しました

SELECT * FROM members WHERE member_id = (select member_id) AND member_club_id = (select member_club_id=1) AND membership_year = (select membership_year);

これは正しく機能します。

私はまだ mysql に慣れていないので、この 2 番目のアプローチが機能する理由を知りたいと思っていました。

興味深いのは、たとえばselect member_club_id=1andです。member_id = (select member_id)

私は、呼び出された変数がなかったため、失敗したため、これmember_id = (select member_id)が読み取られると考えていました。member_id=member_idmember id

select member_club_id=1私はunknown columnエラーが発生しmember_club_idて失敗すると思っていました。

誰か助けて。

4

2 に答える 2