我試圖在我的php應用程序中更新mysql表。這是我想弄明白的:僅當字段已具有值時,mysql纔會連接數據
如果「my-field」不包含任何數據,我想用特定的數據字符串更新該字段。
如果「我的字段」已經包含數據,我想連接更多的數據給它,並用逗號分隔。
「我的場」被設置爲「NOT NULL」
下面是我使用的代碼,我覺得是接近我所需要的,但它不工作。
UPDATE my-table SET
my-field =
IF(
LENGTH('my-field'),
CONCAT_WS(
CHAR(44 USING UTF8),
'my-field',
'if-my-field-has-length-data'
),
'if-my-field-has-NO-length-data');
我試過下面的代碼。它實際上工作。但是,它最終總是添加逗號開始像這樣:
note the comma here => ,data-set-1,data-set-2
我正在尋找這樣的結果:
note no comma on first data set => data-set-1,data-set-2
UPDATE my-table SET
my-field =
CONCAT_WS(
CHAR(44 USING UTF8),
'my-field',
'general-data'
)
有誰知道做我在找什麼?
爲什麼要存儲逗號分隔的字符串有許多有效的原因。這可能是因爲不需要根據字段中的數據進行查詢,並且任何數據解析都會在完全獨立的應用程序層中進行。 –
正確,我不需要查詢數據。只是尋找一種乾淨的方式來存儲我可以在以後輕鬆使用PHP解析的正在進行的列表。加上你的代碼在myfield空時仍然在逗號開頭 – Austin
@奧斯汀。 。 。當'myfield'最初是'NULL'時,這不會添加逗號。 –