gpt4 book ai didi

mysql - MySQL 中的数据检索

转载 作者:行者123 更新时间:2023-11-29 13:56:49 24 4
gpt4 key购买 nike

我想从表中检索一些年龄在特定范围内的数据。

示例

年龄在20岁至30岁之间的人士。我该怎么做?我尝试使用以下查询,但无法得到它。

$age="SELECT * 
From rec_patient_reg
WHERE p_age >='$afrom' <= '$to'";
$result1=mysql_query($age)
or die(mysql_error());
while($result = mysql_fetch_array($result1)) {
echo "<b>Patient ID</b> = " .$result["Patient_id"] . " <br>";
echo "<b>NAME</b> = ".$result["p_fname"]."<br><br>----------------<br><br>";

请帮助我。

最佳答案

我敢打赌,由于您使用的是 mysql,因此您不会收到任何错误消息。看看下面这个例子,

SELECT *
FROM tableName
WHERE Age >= 20 <= 25

这在任何其他 RDBMS 上都是不允许的,但 MySQL 允许。它的作用是隐式允许在过滤器的最右侧使用 bool 表达式,例如

SELECT *
FROM tableName
WHERE (Age >= 20) <= 25

因此,在本例中,该值现在被解析为(假设 Age = 5)

WHERE  0  >= 25 

导致您检索到意外结果。

<小时/>

如果您想搜索范围,可以使用BETWEEN

SELECT * 
From rec_patient_reg
WHERE p_age BETWEEN '$afrom' AND '$to'

作为旁注,该查询容易受到 SQL Injection 的影响。如果变量的值(s)来自外部。请查看下面的文章,了解如何预防这种情况。通过使用 PreparedStatements,您可以摆脱在值周围使用单引号的情况。

关于mysql - MySQL 中的数据检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15727478/

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