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()
性能高,尤其是在大型数据集上。在选择替代方案时,请确保它们满足您的性能需求。