作为示例,我将其作为列中的字段:
3,21,23,41,47,56,57,61,64,74,78,79,82,83,86,90,94
这些是ID,我试图找出如何搜索我尝试过的多个数字,例如:
SELECT * FROM table WHERE status='A' AND (FIND_IN_SET('3,64', myids))
如果3和64在一起并且输出每个值的find_in_set可能会有点痛苦,这似乎只有效。
有更好的解决方案或建议吗?
答案 0 :(得分:2)
FIND_IN_SET()
只能找到第一个参数的位置(参见MySQL Reference, String Functions)。
您可以为要查找的每个ID使用一个FIND_IN_SET
:
SELECT * FROM table WHERE status='A' AND
FIND_IN_SET('3', myids) AND FIND_IN_SET('64', myids)
答案 1 :(得分:2)
SELECT * FROM table WHERE status='A' AND myids in (3, 64)
你可以试试这个。
答案 2 :(得分:0)
SELECT * FROM table WHERE myids REGEXP REPLACE(" 3,64",',','(\,| $)|');
答案 3 :(得分:-2)
foreach($ids as $id)
{
SELECT * FROM table WHERE status='A' AND (FIND_IN_SET($id, myids))
}
that check one by one and getting the result from table.