比较复杂:
SELECT GROUP_CONCAT(bb1.ss2 SEPARATOR ',') FROM (
SELECT CONCAT(',',a.link,',') AS aa,
REPLACE(MID(CONCAT(',',a.link,','),b.id,INSTR(MID(CONCAT(a.link,','),b.id,LENGTH(CONCAT(a.link,','))),',')+1),',','')
AS ss2,b.id
FROM tty2 a LEFT JOIN lsb1 b ON LENGTH(a.link)+2>=b.id
WHERE a.status=0 AND MID(CONCAT(',',a.link,','),b.id,1)=','
ORDER BY aa) bb
LEFT JOIN
(SELECT CONCAT(',',a.link,',') AS aa,
REPLACE(MID(CONCAT(',',a.link,','),b.id,INSTR(MID(CONCAT(a.link,','),b.id,LENGTH(CONCAT(a.link,','))),',')+1),',','')
AS ss2,b.id
FROM tty2 a LEFT JOIN lsb1 b ON LENGTH(a.link)+2>=b.id
WHERE a.status=0 AND MID(CONCAT(',',a.link,','),b.id,1)=','
ORDER BY aa) bb1
ON bb1.id>bb.id AND bb1.aa=bb.aa
WHERE bb.ss2='40'
LSB1:字段ID,内容1-10000
你可以将
SELECT CONCAT(',',a.link,',') AS aa,
REPLACE(MID(CONCAT(',',a.link,','),b.id,INSTR(MID(CONCAT(a.link,','),b.id,LENGTH(CONCAT(a.link,','))),',')+1),',','')
AS ss2,b.id
FROM tty2 a LEFT JOIN lsb1 b ON LENGTH(a.link)+2>=b.id
WHERE a.status=0 AND MID(CONCAT(',',a.link,','),b.id,1)=','
select * from test where status=0 and (FIND_IN_SET('32',link) or FIND_IN_SET('34',link) or FIND_IN_SET('49',link) or FIND_IN_SET('91',link) or FIND_IN_SET('109',link));
select * from test where status=0 (FIND_IN_SET('32',link) or FIND_IN_SET('34',link) or FIND_IN_SET('49',link) or FIND_IN_SET('91',link) or FIND_IN_SET('109',link));
mysql> help find_in_set;
Name: 'FIND_IN_SET'
Description:
Syntax:
FIND_IN_SET(str,strlist)
Returns a value in the range of 1 to N if the string str is in the
string list strlist consisting of N substrings. A string list is a
string composed of substrings separated by "," characters. If the first
argument is a constant string and the second is a column of type SET,
the FIND_IN_SET() function is optimized to use bit arithmetic. Returns
0 if str is not in strlist or if strlist is the empty string. Returns
NULL if either argument is NULL. This function does not work properly
if the first argument contains a comma (",") character.