当php变量包含mysql查询时,如何在mysql查询中使用php变量?

当php变量包含mysql查询时,如何在mysql查询中使用php变量?,php,mysql,subquery,Php,Mysql,Subquery,我如何在mysql中实现这样的东西 $query1 = "SELECT id FROM table WHERE username = 'John'"; $query2 = "SELECT id FROM table WHERE username= 'Parsa'"; $query = "SELECT * FROM table WHERE id BETWEEN $query1 AND $query2"; $result = mysql_query($query) or die('Query

我如何在mysql中实现这样的东西

$query1 = "SELECT id FROM table WHERE username = 'John'";
$query2 = "SELECT id FROM table WHERE username= 'Parsa'";

$query = "SELECT * FROM table WHERE id BETWEEN $query1 AND $query2";



$result = mysql_query($query) or die('Query faild'.mysql_error());
$myrecord = mysql_fetch_assoc($result);

虽然你的询问没有任何意义;您需要子查询才能工作

$query1 = "(SELECT id FROM table WHERE username = 'John')";
$query2 = "(SELECT id FROM table WHERE username= 'Parsa')";

$query = "SELECT * FROM table WHERE id BETWEEN $query1 AND $query2";

u可以使用子选择:

SELECT * FROM table WHERE id BETWEEN ($query1) AND ($query2)

但要小心:子选择结果必须是整数。

您可以将这3个查询放入一个查询中:

$query = "SELECT * FROM table WHERE id 
          BETWEEN
           ( SELECT id FROM table WHERE firstname = 'John' GROUP BY id ) 
          AND
           ( SELECT id FROM table WHERE firstname = 'Parsa' GROUP BY id )
         ";
试试这个

$query1 ="SELECT GROUP_CONCAT(id) FROM table WHERE firstname in('John','Parsa')";


$query = "SELECT * FROM table WHERE id IN ($query1)";

您有两个相同的查询,您可以只有一个。使用IN,而不是BETWEEN。

为什么不直接在id介于1和2之间的地方使用呢?实际上,您的方法完全错误?你有什么?你需要什么?@Satish Sharma:这只是一个简单的例子。我需要正确的格式来使用查询。这是否意味着需要从id=1omg的表中选择id。我已经说过,这并不意味着什么,但OP在询问如何在其他查询中使用查询。这个答案就是这个问题的答案。谢谢。这是我的答案。@Daan你们这些家伙真的很有破坏性和傲慢。就因为OP给出了一个毫无意义的例子,你需要对答案投否决票吗?非常成熟。你为什么不试着通过评论他的问题来帮助他做错事呢。你完全搞错了。这个答案是正确的,有助于回答OP的问题。这就是stackoverflow的概念。向下投票来炫耀你的技能并没有任何帮助。我不能标记更多的人,还有两个匿名向下投票。谢谢,但我不想这样使用它们。是的,你是对的。这只是一个简单的例子,我的来源是不同的。谢谢你的建议。