2013-04-07 59 views
0

我的MySQL查詢發送到csv,然後發送到HTML文件。 當我做...在IF條件下跳過查詢字段

SELECT 
field_a, 
IF($VAR="yes",field_b,""), 
field_c 
FROM table 
INTO OUTFILE "query.csv"; 

...我總是得到3列(field_a,field_b或空,field_c),符合市場預期。 當$ VAR不是「是」時,我怎樣才能得到2列(field_a,field_c)?

+0

你不能。查詢結果不能有可變數量的列。儘管如此,您可以將三個字段的值連接到一個值 – agim 2013-04-07 14:33:09

+0

您不能先測試'$ VAR'然後將其分成兩個不同的select語句嗎? – bendataclear 2013-04-07 14:34:55

+0

是的,我可以a)拆分選擇語句,b)使用兩種不同的腳本,以及c)使用sed從csv中刪除第三列,一旦它被創建,我認爲這將是保持我的代碼簡單的最佳解決方案和乾淨。謝謝。 – 2013-04-07 14:52:32

回答

1

動態構建您的查詢。它看起來像你的$VAR條件不依賴於數據。然後你可以這樣做(例如PHP):

$fields = 'field_a' ; 
if ($VAR == 'yes') $fields .= ', field_b' ; // and so on 
$query = "SELECT $fields FROM table" ; 
+0

無法使用它,因爲我不使用PHP。我的方式是「剪切-d」;「 -f 1-2,499 < csv0.txt > csv.txt'謝謝無論如何! – 2013-04-07 15:50:50