如何构建这个嵌套的mysql查询?

时间:2016-03-27 13:26:12

标签: php mysql

我有一个包含多个字段的网络表单,搜索数据的用户可能会填写也可能不会填写。想法是用户正在搜索2个或更多参数之间的数据。 E.G:

  • 股票价格1和股票价格2
  • 市值1和市值2其他
  • 参数1和其他参数2 ...

现在,用户可以选择和组合这些(或所有这些)以识别他们正在寻找的内容。我的所有数据都存储在一个表中。现在我可以使用这些参数集中的任何一个并执行

"SELECT * FROM tbl_blah WHERE price BETWEEN stockp1 and stockp2"

当然可以正常工作。

但是当我必须嵌套多个" WHERE x BETWEEN $ 1和$ 2"时,事情会变得棘手。类型场景。我甚至不确定这是否是最佳方法。我已经四处寻找,但我只是没有得到'我应该使用的声明结构。

2 个答案:

答案 0 :(得分:1)

您可以在查询中使用多个。

示例:

 SELECT *  FROM Chart_Of_Accounts
  WHERE (price BETWEEN '$stockp1' AND '$stockp2') 
  OR (marketcap BETWEEN '$cap1' AND '$cap2') 
  OR (anotherparam BETWEEN '$param1' AND '$param2');

希望它有所帮助!

答案 1 :(得分:0)

根据用户填写数据的内容动态创建查询。

所以,它会是这样的,

$query = "SELECT * FROM tbl_blah WHERE";
if(isset['price'])
$query =  $query + "price BETWEEN stockp1 and stockp2";
if(isset['parameter2'])
$query =  $query + " AND parameter2 BETWEEN stockp3 and stockp4";

现在的技巧是检查你是否需要AND或WHERE。