2016-05-23 40 views
-2

我想获得所有这些查询给一个查询的结果;多个where子句在一个mysql查询中

1- $query = mysql_query("select * from table where view='1'"); 
2- $query = mysql_query("select * from table where view='2'"); 
3- $query = mysql_query("select * from table where view='3'"); 
4- $query = mysql_query("select * from table where view='4'"); 
. 
. 
. 
999999- $query = mysql_query("select * from table where view='999999'"); 

我该如何轻松做到这一点?

+1

使用'和'和'或'你的情况使用'或' – robert

+0

不要使用mysql_ *函数:https://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php/14110189 –

+1

它是一个静态列表或'1'到'999999'? – chris85

回答

6

的几种方法。对于这种极端的情况下(或任何范围内)使用BETWEEN

SELECT * FROM table WHERE view BETWEEN 1 AND 999999 

如果不使用范围IN

SELECT * FROM table WHERE view IN (1,2,3,4,999999) 
+0

谢谢,我还需要做一件事来做我想做的就是如何获得一次重复的结果。我的意思是,如果有3个结果有“7个视图”,我想得到1个结果(它给出相同的结果3次,我只需要1次)。我怎样才能做到这一点? –

+0

使用'SELECT *'你不能使用'DISTINCT',但你可以'SELECT * FROM table WHERE查看1和999999 GROUP BY视图' – AbraCadaver

+0

Omg它的工作原理!非常感谢!我非常感谢你们的帮助和支持:)) –

3

你可以用一对>=<=运营商:

$query = 
mysql_query("select * from table where view >= '1' AND view <= '999999'"); 
2

,如果它是序列化的数字

$query = mysql_query("select * from table where view between 1 and 999999"); 

,如果它是不连续的号码

$query = mysql_query("select * from table where view in(1, 2, 3, 10, 16, 88)"); 

也是它不建议使用从php 7使用mysql_query它是removed而不是pdomysqli与preapre防止SQL注入

我这里是为PDO

$query = $pdo->prepare("select * from table where view between ? and ?"); 
$query->execute([1,99999]);