2011-05-16 62 views
7

是否可以從表中獲取所有列和數據,但是將ID列選爲NULL?在mysql中選擇所有(但一列爲空)

喜歡的東西

SELECT *, id AS (SELECT '') FROM my_table WHERE 1 

我想在ID列拉,因此它不會弄亂了以後的數據負載的列數,但我想要消除列的值,因此它不」導致重大沖突。

謝謝!

+0

對不起,我應該更清楚地說明一下 - 表格可能有80列 - 我更願意使用*符號而不必指定整列列表。由於 – julio 2011-05-16 21:44:12

+0

+1,可能重複[SQL使用排除列選擇\ * \ [除columnA \] FROM表A?(http://stackoverflow.com/questions/729197/sql-exclude-a-column-using- select-except-columna-from-tablea)那麼,鏈接的問題是更一般的(不綁定到MySQL),但答案也適用於此。 – TMS 2014-04-09 07:20:49

回答

9

因此,沒有辦法使用SELECT *並用另一個值替換其中一列。

如果您不想使用應用程序代碼中提供的select語句,則可以創建一個視圖,其中填充了這些字段並且ID已被清除。您仍然必須至少命名一次所有列。

select NULL as ID, t.col2, t.col3, t.col4 from mytable t where col2 = 1 

這是最簡單的方式讓所有的列名的:

SELECT column_name FROM information_schema.columns WHERE table_name = mytable 
+0

感謝維尼 - 這就是我最終的目標。 – julio 2011-05-17 23:34:46

0

你不能那樣做。這在SQL中是不允許的。你應該寫所有的字段,然後說id爲空。

SELECT a,b,c,d,e, id as NULL from table

1

什麼

SELECT *, NULL AS id FROM my_table 

你會得到id列出兩次,所以你需要將*擴大到所有的列名,爲每個表你想這個上運行。 (如果你想自動提取列名,你可以使用供應商特定的函數;我不記得MySQL是否有這種情況)。

5
SELECT NULL AS ID, Column1, Column2, ..., ColumnN 
    FROM my_table 
0

你可以這樣做:

SELECT null AS id, t.* FROM my_table t 

但是,這將包括ID兩次。如果您只需要空ID列,則需要指定列。

SELECT null As id, t.col1, t.col2 FROM my_table t 
1

因爲它聽起來就好像是準備到數據轉儲無論如何,使用臨時表

CREATE TEMP TABLE t000 AS SELECT * FROM my_table; -- or INSERT INTO 
UPDATE t000 SET id = NULL; 
0

的真正關係語言Tutorial D允許投影(其它所有其他相關的關係運算符)中表達根據要刪除的屬性而不是要保留的屬性

my_relvar { ALL BUT ID } 

(但作爲當然的真正關係教程d沒有空的概念!)

可悲的是,SQL沒有這樣的語言功能,並且您必須手寫寫的所有列名。

相關問題