gpt4 book ai didi

mysql - 获取范围之间的数据以及范围之一为空时的数据

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:20 24 4
gpt4 key购买 nike

需要根据a列从数据库中获取数据,并提供范围。
我有一个学生表,里面有 ID。
当我在给定的 ID 范围内(即 10-20 之间)查询表时,它会返回正确的结果。
ID为Varchar

SELECT * 
FROM student
WHERE id BETWEEN 'AB10' AND 'AB20'

但让我们假设其中一个范围未作为范围提供
1. ID从空
2. ID转AB20
那么理想情况下它应该从开始一个返回到提供的 id 但我没有得到任何行。我的查询是

SELECT * 
FROM student
WHERE id BETWEEN 'null' AND 'AB20'

最佳答案

一种方法是停止使用 BETWEEN;无论如何,这只是两个 bool 值的收缩,将它们分开。

select *
from student
where ( id >= :start_id
or :start_id is null
)
and ( id <= :end_id
or :end_id is null
)
  • 如果 start_id 为空,那么您将获得小于 end_id 的所有内容,即从序列的“开始”到 end_id 的所有内容.
  • 如果 end_id 为空,那么您将获得大于 start_id 的所有内容。
  • 如果两者都为空,那么您将获得所有内容。

根据您的问题,我们都假设列 ID 具有某些内在含义;如果没有,那么这将不起作用。

关于mysql - 获取范围之间的数据以及范围之一为空时的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21927576/

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