我如何通過在查詢本身中檢查欄位是否為空來對表中的一個欄位執行更新查詢。如果它是空的,那么就執行正常的更新,否則就通過添加新值的逗號進行更新。
例如:
假設在表users中我有一個名為genders的欄位。
情況1:該欄位在所選行中是空的。更新值male.
情況2:該欄位在所選行中為空。
情況2:該欄位不是空的并且有一個值(例如,male)。用,female更新。現在這個欄位的值變成了male,female。
情況3:如果欄位不是空的并且有一個值,那么保持一個檢查以避免重復更新。例如,欄位有male,female和更新查詢再次運行,那么它將按照CASE 2更新male,female,female。這應該被避免。
我想在查詢本身中執行這一點。有什么辦法能做到這一點嗎?
我想在查詢本身中執行這一操作。
uj5u.com熱心網友回復:
從以下內容中獲得一個想法,并根據你的要求修改查詢。
UPDATE users SET genders = CASE
WHEN genders = '' OR OR genders is null THEN 'male'
WHEN genders ='male' THEN CONCAT(genders。 ',','女性')
WHEN genders ='female' THEN CONCAT(genders。 ',','male')
ELSE genders
END
uj5u.com熱心網友回復:
使用CONCAT_WS函式。它可以跳過空號,并使用恰到好處的逗號:
SELECT CONCAT_WS(',', null, 'aa') -- aa。
SELECT CONCAT_WS(', ', 'aa', null) -- aa。
SELECT CONCAT_WS(','/span>, 'aa'/span>, 'bb'/span>) -- aa,bb。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/333993.html
標籤:
