該聲明包括babe
列中的換行符。您可以通過使用HEX()函數來查看字符編碼來確認。
例如:
SELECT HEX(t.babe)
FROM (SELECT CONCAT_WS(' ', 'assword \n') AS babe) t
在我的系統,這將輸出:
617373776F7264200A
這是很容易理解什麼返回
a s s w o r d \n
61 73 73 77 6F 72 64 20 0A
(在原始查詢,有一個額外的逗號會阻止語句運行,也許在t中有另一個表達式他選擇內聯視圖的列表,並返回示例輸出中顯示的'name'
值。但是我們在外部查詢中沒有看到任何引用。
目前尚不清楚爲什麼你需要換行符。如果你想返回:
BABE
-----------
asssword
name
這看起來像兩個單獨的行給我。但它是有效的(但特殊)要做到這一點:
SELECT t.babe
FROM (SELECT CONCAT_WS(' ', 'assword \nname') AS babe) t
隨訪
問:我只是想知道如何添加assword下方的新行..如果你知道請編輯答案
目前尚不清楚您嘗試實現的結果。這個規範與用例的背景是分開的,只是奇怪而已。
答:如果我有需要返回行:一行與文字'assword'
另一行「下面」,它用文字'name'
,我可以這樣做:
(SELECT 'assword' AS some_string)
UNION ALL
(SELECT 'name' AS some_string)
ORDER BY some_string
在這種情況下,我們可以通過簡單引用ORDER BY
子句中的列來獲得我們需要的排序。
在更一般的情況下,當ORDER BY
子句沒有方便的表達式時,我會添加一個額外的列,然後對UNION ALL操作的結果集執行SELECT操作。在這個例子中,「額外」列被命名爲seq
:
SELECT t.some_string
FROM (SELECT 'assword' AS some_string, 1 AS seq
UNION ALL SELECT 'name', 2
)
ORDER BY t.seq
另一個例子:
(SELECT 'do' AS tone, 1 AS seq)
UNION ALL (SELECT 're', 2)
UNION ALL (SELECT 'mi', 3)
UNION ALL (SELECT 'fa', 4)
ORDER BY seq
我只需要添加一個外部選擇,如果我需要一個投影操作(例如,從返回的ResultSet你爲什麼要添加一個新行到mysql刪除seq
列。
SELECT t.tone
FROM (SELECT 'do' AS tone, 1 AS seq
UNION ALL SELECT 're', 2
UNION ALL SELECT 'mi', 3
UNION ALL SELECT 'fa', 4
)
ORDER BY t.seq
?你可以retrive數據時添加一個新行。 – IshaS 2014-09-26 04:12:18
聲音像http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – 2014-09-26 21:36:39