表`data`内有一個列`cate`(text類型),例如:
`data`
`name` `cate`
aaa 1;3;12
bbb 1;5;7;23
ccc 9;11;3;12現有一個字符串:$chr="2;3;15"; 那麽$chr可以拆分爲:2和3和15。(這一步可以用php做)現在我要找到數據表`data`内`cate`列要含有2或3或15的所有資料。即aaa 和ccc請問用mysql語句應該怎樣寫?不要嵌套,mysql4不支持。
`data`
`name` `cate`
aaa 1;3;12
bbb 1;5;7;23
ccc 9;11;3;12現有一個字符串:$chr="2;3;15"; 那麽$chr可以拆分爲:2和3和15。(這一步可以用php做)現在我要找到數據表`data`内`cate`列要含有2或3或15的所有資料。即aaa 和ccc請問用mysql語句應該怎樣寫?不要嵌套,mysql4不支持。
不过还是可以写的select * from data where (instr(concat(';','2',';'),concat(';',cate,';')) or instr(concat(';','3',';'),concat(';',cate,';')) or instr(concat(';','15',';'),concat(';',cate,';'))) 就是效率低点 肯定能出结果 呵呵
REGEXP 正则的实现两个字符串组的匹配。 select * from `data`
where concat(';',`cate`,';') regexp
concat(';(',replace('2;3;15',';','|'),');');
呵呵,再問一下,如果是求全部包含 是不是應該改成:
SQL codeselect*from`data`whereconcat(';',`cate`,';') regexp
concat(';(',replace('2;3;15',';','&'),');');