首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从我的sql数据库匹配条件

从我的sql数据库匹配条件
EN

Stack Overflow用户
提问于 2017-09-28 15:22:41
回答 3查看 37关注 0票数 0

所以,我有一个公司表,客户必须满足的最低标准。

例如:

  • 公司1的最低电气费用为35 35。
  • 公司2的最低电气费用为35 35。
  • 公司3的最低电气费用为45 45。

A customer will fill out the form, and say there electric spend is £53 is would pull all 3 companies from the database.

If a customer entered £40 it would pull companies 1 & 2 from the database.

我有一个SQL查询,我认为这个查询可以工作,但由于明显的原因没有做到:

代码语言:javascript
复制
SELECT * FROM `companies` WHERE `electric_spend` <= 35

但这个查询只适用于公司1& 2。

任何帮助都将不胜感激,甚至链接到一个网站的方法,正确的操作员或任何我将在月球上。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-28 15:27:50

我相信您会希望在SQL中使用where x <= y AND z > a语法,我相信您也可以使用SQL的IN命令。HEre是一些帮助解决问题的资源。

https://www.w3schools.com/sql/default.asp

or.asp

in.asp

附带注意:尽可能使用SQL语句而不是web服务器语言(PHP/.NET/等等)进行逻辑处理。SQL在数据操作方面的性能要好得多。

票数 1
EN

Stack Overflow用户

发布于 2017-09-28 15:28:59

如果我读对了,那么答案是,您正在测试的值是不正确的。

您需要使用客户的实际花费,而不是35的固定值。

因此,您的第一个客户将生成查询。

companies中选择* electric_spend <= 53

第二个客户将生成查询。

companies中选择* electric_spend <= 40

因此,您需要从数据构建查询。为了确保安全,请使用类似PDO之类的工具来帮助构建查询。

票数 0
EN

Stack Overflow用户

发布于 2017-09-28 15:33:42

最基本的答案是使用接受变量的查询:

代码语言:javascript
复制
<?php

$customerSpend = 53;

$query = "SELECT * FROM `companies` WHERE `electric_spend` <= '$customerSpend'";

然而,这本身并不是最佳实践,更好的解决办法是使用类似PDO的方法来帮助您抵御SQL注入攻击。

代码语言:javascript
复制
<?php

$customerSpend = 53;

$query = 'SELECT * FROM `companies` WHERE `electric_spend` <= :customerSpend';

$sth = $dbh->prepare($query, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));

$sth->execute(array(':customerSpend' => $customerSpend));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46472861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档