我想要做的是从我的数据库中选择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%'
答案 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%')