0

我需要一点帮助。我正在尝试从特定标准的数据库中获取记录,但无法做出可以解决的确切逻辑。就像我有一张桌子,我在其中存储一些 ID,例如

1,14,23,45,17,8,9,11 etc

我收到这样的数组

1,2,19,45,56,65

我的想法是分解数组并将各个索引与数据库中的列相匹配。但是问题来了。。

如果我使用

像 %value% 查询一样,它返回非必需的结果,例如,如果我们运行

SELECT * 
FROM  `table` 
WHERE  `table_skills_id` LIKE  '%2%'
LIMIT 0 , 30

您可以看到 2 不在我上面写的初始数组或列中,但因为 23 存在于那里,它响应说有一个结果匹配,应该说 0 行匹配

我想要的是它匹配整个数字而不是单独匹配它们。我试过“Like %2”和“Like 2%”,但它们都不能正常工作。

任何快速帮助将不胜感激。

谢谢。

4

3 回答 3

1

您可以使用FIND_IN_SET函数:

SELECT * 
FROM  `table` 
WHERE  FIND_IN_SET('2', `table_skills_id`)>0
LIMIT 0 , 30
于 2013-09-11T19:19:58.977 回答
1
SELECT * 
FROM  `table` 
WHERE  `table_skills_id` IN (1,2,19,45,56,65)
LIMIT 0 , 30
于 2013-09-11T19:20:28.987 回答
0

我认为您希望使用“in”运算符,例如:

从(1,2,19,45,56,65) 中的位置table 选择 * 。table_skills_id

于 2013-09-11T19:22:19.813 回答