2016-08-05 41 views
0

我已經成功創建了一個MySQL View,但剛剛注意到大多數列的數據類型是「longtext」。我需要將其中一些更改爲整數,但看起來好像無法在創建View之後更改View列的數據類型。Creaet VIEW但改變選定列的數據類型

創建視圖時是否可以指定單個列的數據類型?這是我的SQL查詢:

select p.ID as order_id, 
     p.post_date, 
     max(CASE WHEN pm.meta_key = '_billing_email' and p.ID = pm.post_id 
        THEN pm.meta_value END) as billing_email, 
     max(CASE WHEN pm.meta_key = '_billing_first_name' and p.ID = pm.post_id 
        THEN pm.meta_value END) as _billing_first_name, 
     max(CASE WHEN pm.meta_key = '_billing_last_name' and p.ID = pm.post_id 
        THEN pm.meta_value END) as _billing_last_name, 
     max(CASE WHEN pm.meta_key = '_order_total' and p.ID = pm.post_id 
        THEN pm.meta_value END) as order_total, 
     max(CASE WHEN pm.meta_key = '_order_tax' and p.ID = pm.post_id 
        THEN pm.meta_value END) as order_tax, 
     max(CASE WHEN pm.meta_key = '_paid_date' and p.ID = pm.post_id 
        THEN pm.meta_value END) as paid_date 
from wp_posts as p, 
    wp_postmeta as pm 
where post_type = 'shop_order' 
    and p.ID = pm.post_id 
    and 
    and post_status = 'wc-completed' 
group by p.ID 

我想order_tax和ORDER_TOTAL列是整數(例如BIGINT(20))。我是一般的SQL新手,如果可能的話還找不到語法?

+0

試試這個:MAX(...)+ 0作爲order_tax, – SIDU

+1

我想沒有。 您應該更改表格的列的數據類型,您已經創建了一個VIEW。 視圖只是表格上的SELECT語句。 – Priyanshu

+2

如果您現在可以更改基表,請在視圖定義中執行CAST。 – jarlh

回答

0

謝謝 - 我能得到通過使用CAST正確設置視圖的數據類型,例如:

CAST(max(CASE WHEN pm.meta_key = '_line_subtotal' and p.order_item_id = pm.order_item_id THEN pm.meta_value END) AS UNSIGNED) as subtotal