Mysql命令从id到id进行选择以进行搜索

时间:2013-10-07 09:37:23

标签: php mysql

我想要做的是从我的数据库中选择VID = 1和最大VID = 25000的视频,我有400k视频,但我不想启动它们所以我需要选择这种方式,我为搜索脚本制作此命令,但我怎么看它不起作用...希望有人可以帮我解决这个问题

用于搜索的MySql命令(此命令用于显示找到的视频数量):

  select 
  count(*) as num 
  from 
    video 
 where 
    VID BETWEEN 1 AND 25000 
 AND 
    title LIKE '%key1%' 
 or 
    title LIKE '%key2%' 
 or 
    title LIKE '%key3%' 
 or 
    title LIKE '%key4%' 

7 个答案:

答案 0 :(得分:2)

我认为您需要通过在AND子句

中添加括号来使用运算符优先级
   select 
    count(*) as num 
    from 
        video 
    where 
        VID BETWEEN 1 AND 25000 
    AND 
        (title LIKE '%key1%' 
    or 
        title LIKE '%key2%' 
    or 
        title LIKE '%key3%' 
    or 
        title LIKE '%key4%' );

答案 1 :(得分:1)

在括号()中添加LIKE,尝试执行以下操作:

select count(some_id) as num from video where 
VID >= 1 AND VID <= 25000 AND 
(title LIKE '%key1%' or title LIKE '%key2%' or title LIKE '%key3%' or title LIKE '%key4%')

答案 2 :(得分:1)

尝试以下:

select count(*) as num from video where VID BETWEEN 1 AND 25000 AND (title LIKE '%key1%' or title LIKE '%key2%' or title LIKE '%key3%' or title LIKE '%key4%') 

答案 3 :(得分:1)

只需在括号中设置所有标题比较。

select 
  count(*) as num 
  from 
    video 
 where 
    VID BETWEEN 1 AND 25000 
 AND (
    title LIKE '%key1%' 
 or 
    title LIKE '%key2%' 
 or 
    title LIKE '%key3%' 
 or 
    title LIKE '%key4%' 
)

答案 4 :(得分:1)

试试这个

 SELECT count(title) as num 
 FROM video 
 WHERE vid <= 25000 
 AND (title LIKE '%key1%' OR title LIKE '%key2%' OR title LIKE '%key3%' OR title LIKE '%key4%')

答案 5 :(得分:1)

你的介绍很好,真正的问题是你的当前脚本是这样执行的,因为AND运算符的优先级高于OR:

select 
count(*) as num 
from 
  video 
where 
  (VID BETWEEN 1 AND 25000 
AND 
  title LIKE '%key1%')
or 
  title LIKE '%key2%' 
or 
  title LIKE '%key3%' 
or 
  title LIKE '%key4%'

所以你需要做的是改变它:

select 
count(*) as num 
from 
  video 
where 
  VID BETWEEN 1 AND 25000 
AND (
  title LIKE '%key1%'
or 
  title LIKE '%key2%' 
or 
  title LIKE '%key3%' 
or 
  title LIKE '%key4%' )

答案 6 :(得分:0)

试试这个

select 
    count(if(vid between 1 and 25000, 1, 0)) as totalvideocnt
from
    video
where
    (title like '%key1%' or title like '%key2%' or title like '%key3%' or title like '%key4%')