1 我想在表tab更新列col,其數據是像如下(以逗號分隔,用的標題逗號):如何在MySQL中編寫這種SQL? ,test,oh,whatever,...., 這可能太長顯示,我怎麼可以更新列,因此那隻剩下第一個10字了? 來源 2010-07-20 wamp +2 第一修正你的架構。不要在數據庫中存儲逗號分隔值。 閱讀正常化。 – Naktibalda 2010-07-20 10:02:26 +0 @Naktibalda你不知道這些值是否可以被正常化。它們可以是任意字符串。 – 2010-07-20 10:07:39 +0 @Pekka:如果他們只是字符串,就沒有必要把它們當作單獨的單詞。我同意@Naktibalda,即這違反了第一範式(1NF),它要求標量數據類型。考慮到這個NFNF設計在SO上產生了一個問題,因爲SQL語言缺乏使用多值數據的操作符,因爲它假定所有數據類型都是標量。使用正確的工具進行這項工作;) – onedaywhen 2010-07-20 10:31:47
2 您正在尋找substring_index UPDATE table SET column = SUBSTRING_INDEX(column, ',', 11) (運行之前做檢查與選擇您的更新) 來源 2010-07-20 10:22:52 Unreason
0 不是您的問題的答案,但我會建議在應用程序級別上做這樣的事情,而不是在數據庫中。 你不是說你在用什麼語言。在PHP中,這將是wordwrap函數的一項工作。它能夠在正確的位置智能地切斷字符串。 或者,將完整的字符串存儲在數據庫中,並在輸出時進行剪切,而不是一個選項? 來源 2010-07-20 09:56:27 +0 不,它是用於開發環境,數據混亂。 – wamp 2010-07-20 10:00:48
第一修正你的架構。不要在數據庫中存儲逗號分隔值。 閱讀正常化。 – Naktibalda 2010-07-20 10:02:26
@Naktibalda你不知道這些值是否可以被正常化。它們可以是任意字符串。 – 2010-07-20 10:07:39
@Pekka:如果他們只是字符串,就沒有必要把它們當作單獨的單詞。我同意@Naktibalda,即這違反了第一範式(1NF),它要求標量數據類型。考慮到這個NFNF設計在SO上產生了一個問題,因爲SQL語言缺乏使用多值數據的操作符,因爲它假定所有數據類型都是標量。使用正確的工具進行這項工作;) – onedaywhen 2010-07-20 10:31:47