2012-12-29 24 views
0

在mySql中,是否可以根據某些內容進行插入?在我的情況下,我想根據用戶位置進行插入。這些地點就像美國,英國,澳大利亞,加拿大等。 所以如果位置是美國我想要做1-0001,1-0002等,英國2-001,2-002等。插入一個基於用戶位置的值

也許通過使用類似的情況,這可能是可能的?

我當前的插入是這樣的:

insert into prodClassifieds (userId, userName, classStatus, classCountry, classId) 
    select 
    $userId, 
    '$userName', 
    1, 
    '$userCountry', 
    IFNULL((MAX(classId)+1) ,0) 
    FROM prodClassifieds 

編輯:我可以離開了 - 在1-0001。 MAX(col)也是MAX(classId),而不是我最初發布的。下一個值是1 +那裏的當前值。

+0

是的,這是可能的了'CASE '。你想修改哪個值?哪一列產生'1-0001'? –

+0

將位置值放入一個表中並加入 – ethrbunny

+0

如果您正在嘗試爲'classId'構造這些值,那麼由於MAX()+ 1受到競爭條件的問題,這會變得更加困難......讓我們知道這些將如何使用,我們可以提供幫助。 –

回答

0

是的,這是可能的,

insert into prodClassifieds 
(userId, userName, classStatus, classCountry, classId) 
select $userId, '$userName', 1, 
'$userCountry', 
case when userCountry='US' then 
MAX(sc_stack_id)+1 else 0 end 
FROM prodClassifieds 

U可以當作爲添加如下幾個條件,按您的需要

+0

這是OP希望應用這種模式的最後一列('IFNULL()')。 –

+0

@MichaelBerkowski是嗎?對不起。讓我編輯我的答案。 – Mari

+0

@MichaelBerkowski但這會一直給所有國家都有同樣的結果嗎? – Mari

0

用例:

insert into prodClassifieds (userId, userName, classStatus, classCountry, classId) 
    select 
    $userId, 
    '$userName', 
    CASE '$userCountry' WHEN 'US' THEN 10000 WHEN 'UK' THEN 20000 ELSE 90000 END CASE 
    + 1, 
    '$userCountry', 
    IFNULL((MAX(sc_stack_id)+1) ,0) 
    FROM prodClassifieds 
相關問題