MySQL类似的2列需要按第1列开始数据

时间:2016-12-02 12:49:42

标签: php mysql regex where

$genre = 'Action|Adventure|Crime';
$starcast= 'Tom Hanks|Felicity Jones|Omar Sy|Irrfan Khan';

$S2 = mysql_query("SELECT title,hash,year FROM IMDB WHERE starcast REGEXP '".$starcast."' or genre REGEXP '".$genre."' LIMIT 16") or die (mysql_error());
        while ($S = mysql_fetch_assoc($S2)){

这是有效的,但结果是混合数据。

数据LIMIT为16。

我希望通过星球播放第一个所有数据。

示例: - 如果startcast数据与9结果匹配,则所需的最后7个数据与流派匹配。

抱歉英语不好。

问题是更新.....

1 个答案:

答案 0 :(得分:1)

我怀疑您发布的查询是如何工作的。它应该抛出编译错误。您的查询应该看起来像

SELECT title,hash,year 
FROM IMDB WHERE starcast REGEXP '".$starcast."' or genre REGEXP '".$genre."' 
ORDER BY id DESC
LIMIT 16

如果startcast数据与9结果匹配,那么最后7个数据需要与流派相匹配

除非你使用UNION查询,否则不要认为你可以这样做

(SELECT title,hash,year 
FROM IMDB WHERE starcast REGEXP '".$starcast."' 
ORDER BY id DESC LIMIT 9)
 UNION
(SELECT title,hash,year 
FROM IMDB WHERE genre REGEXP '".$genre."'
ORDER BY id DESC LIMIT 7 )