gpt4 book ai didi

MySQL 查询 BETWEEN Null 和一些大的东西

转载 作者:行者123 更新时间:2023-11-29 23:27:58 25 4
gpt4 key购买 nike

这是我的第一篇文章。

我对 MySQL 还很陌生,但我会尽力做到最好。我在网上搜索了一下,发现包含 Null 的查询可能会很麻烦。

我会尝试解释我的问题。我有一个包含土壤分析的表格,大约 400k 行,大约 30 列。有些字段没有值,而是为 Null。我让用户指定 7 个不同列的最小值和最大值之间的范围。PHP 中有 14 个不同的变量。

如果用户没有指定,我将最小变量设置为 0,最大变量设置为 100000。现在出现了问题,因为表中的某些值包括 Null,所以当我尝试时,BETWEEN 比较实际上不起作用与 Null 进行比较。

那么整行将不会包含在结果中,该行上可能还有我想要包含的其他值。我已经包含了我的查询是否有帮助。真的很需要一些帮助。我觉得这个问题是可以解决的,但我已经尝试谷歌搜索一段时间了,但找不到其他人有同样的问题。

/西蒙

$sql = "SELECT `kundnr`, `Year`, `Provnr`, `pH`, `P_AL`, `P_HCl`, `K_AL`, `K_HCl`, `Mg_AL`,
`Cu_HCl`, `K_Mg_kvot`, `Bor`, `Ca_AL`, `Total_lerhalt`, `Sand_grovmo`, `Mullhalt`

FROM `analyser`

WHERE (`pH` > 0)

AND (`pH` BETWEEN $minph AND $maxph)
AND (`P_AL` BETWEEN $minpal AND $maxpal)
AND (`K_AL` BETWEEN $minkal AND $maxkal)
AND (`Mg_AL` BETWEEN $minmg AND $maxmg)
AND (`Total_lerhalt` BETWEEN $minler AND $maxler)
AND (`Mullhalt` BETWEEN $minmull AND $maxmull)
AND (`Sand_grovmo` BETWEEN $minsgrovmo AND $maxsgrovmo)

LIMIT 0,$limitrows";

最佳答案

如果您希望包含空值的行,请将 null 替换为最小值(或最大值):

例如: AND (IFNULL(K_AL, $minkal) BETWEEN $minkal AND $maxkal)

关于MySQL 查询 BETWEEN Null 和一些大的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26805608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com