我有這個查詢正在工作,直到我意識到如果表爲空,max
不起作用。我檢查一個用戶的position
,然後插入一個位置更高的行。我如何設置一個案例,如果沒有適當的user_id的行,我插入一個位置爲1的行?我試圖做一個case語句,但它不起作用,我淹沒在Mysql語法中。具有集合函數的Mysql case語句(僅在集合函數使用時才使用集合)
以下是原始
$stmt = $dbh->prepare("
insert into
dashboard_data
(position, user_id)
select
max(position) + 1,
:userid
from
dashboard_data
where
user_id = :userid
");
這裏是我在一個case語句誤導嘗試
insert into
dashboard_data
(position, user_id)
select
case
when exists
max(position)
then
max(position) + 1
else
1
end case,
:userid
from
dashboard_data
where
user_id = :userid
曾爲漂亮,我已經得到了它與10號線的垃圾工作,但由此帶來下來到1 –
@CraigPatrickLafferty簡單的答案通常是最好的 –