iT邦幫忙

0

[已解決]SQL新手請教,查詢特定欄位有關鍵值後,加入值怎麼寫

sql
  • 分享至 

  • xImage

雖然這問題很簡單,但我只會簡單的查詢,所以冒昧來發問下
目前有張表:MA,裡面有數十個欄位,我想找到欄位MA04內有包含到ABC關鍵值,並加入,DEF
例如MA04下有
AAA
AAA,BBB
AAA,BBB,ABC
BBB,ABC
找到關鍵值ABC後,加上,DEF 結果如下
AAA
AAA,BBB
AAA,BBB,ABC,DEF
BBB,ABC,DEF
該怎麼寫,感謝前輩

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
純真的人
iT邦大師 1 級 ‧ 2018-10-30 10:17:17
最佳解答

我的方式是這樣,避免資料是有類似ABC,導致更新錯誤...

AAA
AAA,BBB
AAA,BBB,ABC
BBB,ABC
BBB,ABCD

update MA
set MA04 = MA04 + ',DEF'
where CharIndex(',ABC,',',' + MA04 + ',') > 0
vicentli iT邦研究生 4 級 ‧ 2018-10-30 10:23:20 檢舉

還真的會有ABCD這樣的值呢!感謝您

vicentli iT邦研究生 4 級 ‧ 2018-10-30 10:30:29 檢舉

感謝,成功了!

0
paicheng0111
iT邦大師 5 級 ‧ 2018-10-30 10:15:16

我想大概是這樣

UPDATE MA
SET MA04 = MA04 || ',DEF'
WHERE MA04 LIKE '%ABC%'
看更多先前的回應...收起先前的回應...
vicentli iT邦研究生 4 級 ‧ 2018-10-30 10:23:26 檢舉

感謝您!

Homura iT邦高手 1 級 ‧ 2018-10-30 11:12:19 檢舉

|是打錯嗎?

真的是打錯。應該是||

Homura iT邦高手 1 級 ‧ 2018-10-30 16:48:13 檢舉

不是+嗎?@@
||是什麼意思?

有些資料庫的+必須寫成||,概念是+是被拿來運算數值,而非把字串黏起來。

Homura iT邦高手 1 級 ‧ 2018-10-30 17:19:21 檢舉

張小馬
原來如此
感謝解釋

有些資料庫用&,有些則是用+||

Homura iT邦高手 1 級 ‧ 2018-10-31 10:40:46 檢舉

pcw大還真的用過很多種資料庫呢!/images/emoticon/emoticon12.gif

vicentli iT邦研究生 4 級 ‧ 2018-10-31 14:57:17 檢舉

抱歉沒說清楚,發問是SQL Server
目前也正在摸MySQL,請問 「有些資料庫用&,有些則是用+或||」
不同符號各是可以對應到哪種資料庫?謝謝

我要發表回答

立即登入回答