FIND_IN_SET()
是 MySQL 函數,用于在一個以逗號分隔的字符串中查找一個值的位置
LIKE
語句:SELECT * FROM table_name WHERE concat(',', set_column, ',') LIKE '%,value,%';
REGEXP
或 RLIKE
(這兩個是等價的):SELECT * FROM table_name WHERE set_column REGEXP '[[:<:]]value[[:>:]]';
INSTR()
函數:SELECT * FROM table_name WHERE INSTR(CONCAT(',', set_column, ','), CONCAT(',', 'value', ',')) > 0;
LOCATE()
函數:SELECT * FROM table_name WHERE LOCATE('value', CONCAT(',', set_column, ',')) > 0;
請注意,這些替代方案可能不如 FIND_IN_SET()
性能高,尤其是在大型數據集上。在選擇替代方案時,請確保它們滿足您的性能需求。