FIND_IN_SET函数用来比较是不是包含
mysql中In是比较等不等
使用实际的例子,对比两者之间性能的
FIND_IN_SET
UPDATE project
SET Available = 1
WHERE
FIND_IN_SET(
ID ,'001e678a-b0af-482a-aa41-f4490de7c412,002a62ee-ab92-4cbe-89bc-0d759a027f80,00b3ab99-7a5f-422f-830f-63c36fd5ac16,00c050c3-ccda-418c-acac-e8965dc8f29b')
执行的解释,可以看到还是使用了主键索引的
执行时间为:0.014s
IN
UPDATE project
SET Available = 0
WHERE
ID IN (
'001e678a-b0af-482a-aa41-f4490de7c412',
'002a62ee-ab92-4cbe-89bc-0d759a027f80',
'00b3ab99-7a5f-422f-830f-63c36fd5ac16',
'00c050c3-ccda-418c-acac-e8965dc8f29b'
)
同样使用了主键索引
总共耗时0.001s,相对FIND_IN_SET使用的时间还是大大减少了的。怪不得,
在两者都可实现的情况之下,大家都不建议使用前者。