Creaet VIEW但改变所选列的数据类型

时间:2016-08-05 06:27:48

标签: mysql sql view

我已经成功创建了一个MySQL视图但是刚刚注意到大多数列的数据类型是" longtext"。我需要将其中一些更改为整数,但看起来您在创建视图后无法更改View列的数据类型。

创建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的新手,如果可能的话,我们还能找到语法吗?

1 个答案:

答案 0 :(得分:0)

谢谢 - 我能够通过使用CAST正确设置View数据类型,例如:

    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