如果我需要「分裂」帶分隔符的一個字符串,我會利用漂亮的SUBSTRING_INDEX
功能。但是要注意一些怪癖。
我會採取的做法肯定是先寫一個SELECT語句。這將包括SELECT列表中返回我想分配給另一列的「分離」值的表達式。在編寫UPDATE語句之前,我會使用SELECT語句對這些表達式進行測試。
SELECT t.id
, t.column_i_want_to_split
, expr1
FROM mytable t
ORDER BY t.id
測試特定的情況下,我會使用內嵌視圖
SELECT t.id
, t.note
, t.val
, expr1
FROM (SELECT 1 AS id, 'empty string test' AS note, '' AS val
UNION ALL SELECT 2, 'null', NULL
UNION ALL SELECT 3, 'one space', ' '
UNION ALL SELECT 4, 'four spaces', ' '
UNION ALL SELECT 5, 'test5', ' abc def '
UNION ALL SELECT 6, 'test6', 'g hi kl m'
) t
ORDER BY t.id
的一次,我回來時,我想轉讓給另一列中的值表達式(S),我將SELECT轉換爲UPDATE語句。要處理所有行,請省略WHERE子句。
UPDATE mytable t
SET t.another_column = expr1
沒有一個更明確的規範,或者至少是一些你正試圖實現的具體例子,我們只是猜測。只是對問題的一般描述,我們所能提供的只是一些一般性建議。
編輯您的問題,並提供樣本數據和期望的結果。 –