Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql命令从一个id到另一个id进行搜索_Php_Mysql - Fatal编程技术网

Php Mysql命令从一个id到另一个id进行搜索

Php Mysql命令从一个id到另一个id进行搜索,php,mysql,Php,Mysql,我想做的是从我的数据库中选择视频,视频=1,最大视频=25000,我有400k个视频,但我不想全部启动,所以我需要选择这种方式,我对搜索脚本执行此命令,但我认为它不起作用。。。希望有人能帮我解决这个问题 用于搜索的MySql命令(此命令用于显示找到的视频数量): 在括号()中添加类似于的,尝试执行以下操作: select count(some_id) as num from video where VID >= 1 AND VID <= 25000 AND (title LIKE

我想做的是从我的数据库中选择视频,视频=1,最大视频=25000,我有400k个视频,但我不想全部启动,所以我需要选择这种方式,我对搜索脚本执行此命令,但我认为它不起作用。。。希望有人能帮我解决这个问题

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


在括号()中添加类似于的
,尝试执行以下操作:

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%')
从视频中选择count(一些\u id)作为num,其中
VID>=1和VID请尝试以下操作:

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%') 

我认为您需要通过在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%' );

仅将所有标题比较设置在括号中

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(title) as num 
 FROM video 
 WHERE vid <= 25000 
 AND (title LIKE '%key1%' OR title LIKE '%key2%' OR title LIKE '%key3%' OR title LIKE '%key4%')
选择count(title)作为num
来自视频

当vid您的between做得很好时,真正的问题是您当前的脚本是这样执行的,因为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%' )
试试这个

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%')

尝试:从视频中选择count(*)作为num,其中VID介于1和25000之间,并且(标题类似“%key1%”或标题类似“%key2%”或标题类似“%key3%”或标题类似“%key4%”我已在下面添加了答案
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%')