FIND_IN_SET()
是 MySQL 函數(shù),用于在一個(gè)以逗號(hào)分隔的字符串中查找一個(gè)值的位置
使用 COALESCE()
或 IFNULL()
函數(shù)處理空值:
當(dāng)使用 FIND_IN_SET()
時(shí),如果在某些行中值為 NULL,可能會(huì)導(dǎo)致返回空結(jié)果。為了解決這個(gè)問題,你可以使用 COALESCE()
或 IFNULL()
函數(shù)將 NULL 值替換為一個(gè)默認(rèn)值,例如一個(gè)空字符串或特定的字符串。
SELECT * FROM your_table WHERE FIND_IN_SET('value', COALESCE(your_column, ''));
或者
SELECT * FROM your_table WHERE FIND_IN_SET('value', IFNULL(your_column, ''));
使用 CASE
語句處理空值:
你還可以使用 CASE
語句來處理可能為 NULL 的值。當(dāng) your_column
為 NULL 時(shí),將其視為一個(gè)空字符串。
SELECT * FROM your_table WHERE FIND_IN_SET('value', CASE WHEN your_column IS NULL THEN '' ELSE your_column END);
確保數(shù)據(jù)完整性:
如果你的表中有很多 NULL 值,那么可能需要重新考慮數(shù)據(jù)模型和數(shù)據(jù)完整性。在某些情況下,可能需要更新或刪除包含 NULL 值的行。
請(qǐng)根據(jù)你的實(shí)際需求選擇合適的方法來處理空結(jié)果。