【发布时间】:2018-03-17 11:07:54
【问题描述】:
我正在使用 MySQL 数据库表 scholarship_discount。其中我有三个字段,即 maxPercentage、min Percentage 和 name。因此,如果所有字段都满足我的条件,我想运行查询以获取行。我正在使用 Laravel 5.6 框架。问题是当我在 MySql Workbench 中运行这个查询然后得到正确的结果但是当通过 Laravel 尝试然后得到错误的结果。
问题示例 ::
如果我给 user value as 78 那么我得到 row id 5 ,否则 96 然后 row 是 1.ok 没问题。使用 mysql 工作台。
但是当我给出 98 ,96,97,99 时,我没有得到任何结果。为什么?我不知道。没有删除任何记录。我的意思是它应该返回 row id 1 但给了我 blank Array []。
我的查询是:
SELECT * FROM confidence.scholarship_discounts where name='ssc' and
(maxPer >= 100 or maxPer = 100 ) and `scholarship_discounts`.`deleted_at` is null
order by id DESC;
我的搜索条件是MaxPercentage应该大于user Value。 我的数据库记录是:
id name maxPercentage minPercentage discountPercentage
1 HSC 100 95 10
2 HSC 95 90 7
3 HSC 90 85 6
4 HSC 85 80 5
5 HSC 80 75 10
6 HSC 75 70 7
7 HSC 60 50 6
所以,根据这个表,如果我给出 95 作为值,那么查询应该返回行 id 1。
因此,最好在 Laravel eloquent 上提供解决方案,然后请描述一下。
我可以过滤或搜索 maxPercentage { value } minPercentage 之间的行吗?
喜欢
75 myValue 70
【问题讨论】:
-
在您的查询中,您有
maxPercentage <= 90。它不会返回第 1 行,因为maxPercentage是 100。你应该这样做maxPercentage >= 90。
标签: php mysql laravel-eloquent laravel-5.6