如果数据完全按照您显示的方式存储,那么您可以使用REPLACE() http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace在馈送之前去除双引号和括号category_ids
to FIND_IN_SET()
.
SELECT *
FROM Table1
WHERE FIND_IN_SET(1, REPLACE(
REPLACE(
REPLACE(category_ids, '"', ''),
'[', ''),
']','')) > 0
Here is SQLFiddle http://sqlfiddle.com/#!2/b269a/1
现在,如果您会经常使用它,那么您可以考虑创建一个用户定义的函数来简化您的代码
CREATE FUNCTION UNQOUTE_LIST(_list VARCHAR(512))
RETURNS VARCHAR(512)
RETURN
REPLACE(
REPLACE(
REPLACE(_list, '"', ''),
'[', ''),
']','');
并使用它
SELECT *
FROM Table1
WHERE FIND_IN_SET(1, UNQOUTE_LIST(category_ids)) > 0
Here is SQLFiddle http://sqlfiddle.com/#!2/f1c39/1