无法创建正确的查询

时间:2013-09-11 19:17:23

标签: php mysql sql database

我需要一些帮助。我试图从某个critera上的数据库中获取记录,但无法确定可行的确切逻辑。就像我有一张桌子,我在其中存储一些像

这样的ID
1,14,23,45,17,8,9,11 etc

我收到一个像这样的数组

1,2,19,45,56,65

我认为是爆炸数组并将各个索引与数据库中的列匹配。但这是问题..

如果我使用

与%value%query一样,如果我们运行

,则返回非必需结果
SELECT * 
FROM  `table` 
WHERE  `table_skills_id` LIKE  '%2%'
LIMIT 0 , 30

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

我想要的是它匹配整数而不是单独匹配它们。我试过“喜欢%2”以及“喜欢2%”,但没有一个能正常工作。

任何快速帮助都将受到高度赞赏。

感谢。

3 个答案:

答案 0 :(得分:1)

您可以使用FIND_IN_SET功能:

SELECT * 
FROM  `table` 
WHERE  FIND_IN_SET('2', `table_skills_id`)>0
LIMIT 0 , 30

答案 1 :(得分:1)

SELECT * 
FROM  `table` 
WHERE  `table_skills_id` IN (1,2,19,45,56,65)
LIMIT 0 , 30

答案 2 :(得分:0)

我想你想要" in"运营商而不是:

SELECT * 来自table 在{1,2,19,45,56,65)中table_skills_id