我有MySQL中的table
如下:選擇列where子句或如果沒有條件,那麼選擇所有列
我嘗試以下查詢:
select * from test.score_card where playerId in(2,3);
select * from test.score_card where playerId not in(0);
我需要一個單行查詢,以便它應顯示輸出,如果我通過
playerId
在WHERE IN子句中那麼它應該顯示選定的行或者如果我不通過任何值,那麼它應該選擇所有行。
你是如何調用這個?這是一個原始的SQL查詢還是基於用戶輸入並在事後傳遞給數據庫?如果它基於用戶輸入並且沒有任何內容被傳入,那麼可以使用「合併(輸入字符串,ID)」中的「id」並傳遞「2,3,4,x」,並且它會說「如果有值在輸入字符串中,使用它,否則匹配表中每個id匹配其自身的地方。「還有一件事 - 「0」並不意味着「不存在」。 NULL意味着「沒有價值」。在你上面的表中,沒有「0」,你可以簡單地用「和id不爲空」替代,這是沒有意義的,因爲ID在你的PK中。 –