Mysql
Mysql View 只用靜態值替換一列?
CREATE VIEW `myview` AS select * from mytable
是否可以在視圖中僅用靜態值替換一列?例如
mytable.myvalue = 'view'
?或者我是否必須列出選擇中的所有列,例如:CREATE VIEW `myview` AS select col1 , col2 , ... , coln , 'view' as myvalue from mytable
上面的評論給出了正確的答案,因為沒有萬用字元表示“除了我不想要的列之外的所有列”。
如果你想要一個額外的列,你可以使用萬用字元:
CREATE VIEW `myview` AS select *, 'view' as myvalue from mytable
但是,如果您希望將與萬用字元匹配的列之一替換為您的常量值,則必須拼出這些列。
這裡有一個技巧可以使它更容易:當您
*
在視圖的定義中使用時,MySQL 會將其擴展為列名。然後您可以使用SHOW CREATE VIEW myview
它,它將顯示一個完整的 CREATE VIEW 語句,其中所有列都顯式命名。然後,您可以使用滑鼠將該字元串複製並粘貼到任何編輯器界面中,因此您不必鍵入所有列。您只需要在兩個地方編輯它:CREATE OR REPLACE VIEW `myview` AS ^^^^^^^^^^ add this select col1 , col2 , ... , coln , 'view' as myvalue ^^^^^^^^^^^^^^^^^ omit the column you don't want, and add the constant from mytable
然後您可以執行編輯後的版本,它會用您想要替換的一列的新視圖替換您創建的初始視圖。