2016-05-23 64 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]);