如何在MySQL中使用LIKE?

时间:2011-11-29 02:10:05

标签: php mysql

我有一张名为音乐的桌子,上面有一些ID:

 6983887641 59088763306 116542622632 106436032725763 6750402929 131572223581891 17337462361 56848544614 108089415891178 27659711968 182011613865 8888384363 43780515976 7872609449 38858586087 107901192572009 9028468518 5461947317 11955325695 64075031411 12673567174

我需要对这些ID进行查询。如果这样的查询已经完成:

SELECT username FROM music WHERE music LIKE '%107901192572009 9028468518%'

它将使用其音乐表中包含这些ID的用户名返回。好。但问题是如果我以不同的顺序添加id,则没有结果。所以,如果我搜索:

56848544614 107901192572009 or 5461947317 9028468518

他们在表中,但不在顺序中,并且没有结果。我该怎么办?

2 个答案:

答案 0 :(得分:2)

SELECT username FROM music
WHERE music LIKE '%107901192572009%'
  AND music LIKE '%9028468518%'

请注意,它会很慢。另请注意,它可能会失败,因为id可能是另一个id的一部分。有一种更好的方法可以做到这一点 - 查找一对一的关系。如果没有,至少考虑这样做(以解决第二个问题):

SELECT username FROM music
WHERE ' ' + music + ' ' LIKE '% 107901192572009 %'
  AND ' ' + music + ' ' LIKE '% 9028468518 %'

答案 1 :(得分:0)

我想你不想要你想要IN

 SELECT username FROM music WHERE music IN (6983887641, 59088763306, 116542622632, 106436032725763);