where FIND_IN_SET(TC.storeId,'4,24,56') or FIND_IN_SET(TC.storeId,TC.poolStoreId)
与
where FIND_IN_SET(TC.storeId,CONTACT('4,24,56',TC.poolStoreId))请问他们之间的区别是什么?由哪个函数导致的?
与
where FIND_IN_SET(TC.storeId,CONTACT('4,24,56',TC.poolStoreId))请问他们之间的区别是什么?由哪个函数导致的?
如poolStoreId为1
'4,24,561'
where
FIND_IN_SET(TC.storeId,'4,5,24,')
or FIND_IN_SET(TC.storeId,TC.poolStoreId)
and registDate>='2010-12-01'
and registDate<='2010-12-31'30 rows fetched in 0.0174s
*
from
T_CUSTOMER TC
where
FIND_IN_SET(TC.storeId,concat('4,5,24,',TC.poolStoreId))
and registDate>='2010-12-01'
and registDate<='2010-12-31'2 rows fetched in 0.0134s
where
FIND_IN_SET(TC.storeId,'4,5,24,')
or FIND_IN_SET(TC.storeId,TC.poolStoreId)
and registDate>='2010-12-01'
and registDate<='2010-12-31'你的这句和顶楼的主义不同!
少了一个括号。
体会一下这个语句加上括号后的不同。
select * from T_CUSTOMER TC
where
(
FIND_IN_SET(TC.storeId,'4,5,24,')
or
FIND_IN_SET(TC.storeId,TC.poolStoreId)
)
and registDate>='2010-12-01'
and registDate<='2010-12-31'
select
*
from
T_CUSTOMER TC
where
FIND_IN_SET(TC.storeId,concat('4,5,24,',ifnull(TC.poolStoreId,'')))
and registDate>='2010-12-01'
and registDate<='2010-12-31'这样就可以了。请问哪一句效率高一些?
select * from T_CUSTOMER TC
where
(
FIND_IN_SET(TC.storeId,'4,5,24,')
or
FIND_IN_SET(TC.storeId,TC.poolStoreId)
)
and registDate>='2010-12-01'
and registDate<='2010-12-31'
与
select * from T_CUSTOMER TC
where
FIND_IN_SET(TC.storeId,'4,24,56') or FIND_IN_SET(TC.storeId,TC.poolStoreId)
and registDate>='2010-12-01'
and registDate<='2010-12-31'
有区别吗?效率一问是针对5楼的。谢谢解惑!
貌似明白你的意思了,可能使用列明将你带入了误区?poolStoreId是varchar类型的,就是'4,5,24,'这种的字符串,不是一个int型的数值。