php - 如何在 SQLquery 中查询包含范围的列中的数据

标签 php mysql sql

我有一个名为 scholars_ 表,其中一列的名称为 validity,其中包含如下数据:

2016-2019 
2016-2020 
2016-2017 
2018-2019 

我想要实现的是获取学者的scholarID,他们的$validity位于validity列中。

例如变量是$year=2017,我只想选择那些validity2017的scholarID 。输出应该是这样的:

2016-2019
2016-2020 
2016-2017

大概就是这样,谢谢

最佳答案

首先,这是一种非常糟糕的数据存储方式。您的 scholars 表应该只包含 year_fromyear_to 列。

但是,有时我们会因为别人的错误决定而陷入困境。您可以在 MySQL 中使用 substring_index() 来处理此问题:

where $year between substring_index(range, '-', 1) + 0 and substring_index(range, '-', -1) + 0

+ 0 只是将每个值转换为数字。

关于php - 如何在 SQLquery 中查询包含范围的列中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41082336/

相关文章:

php - 在php中显示HTML表多维数组中的数组数据

mysql - 将值以 x 开头的行排序在包含 x 的行之前

mysql - 连接事件列表中的三个表

python - 如何使用 python db-api 安全地生成 SQL LIKE 语句

php - MySQL错误: 'order by timestamp desc limit 1' at line 5

php - 检查 PHP 5.6 中类数组常量中元素的存在

php - 如果 https 连接,cURL 清空请求数据

php - JSON 对象的索引数组元素

php - 根据用户输入起草 SQL 搜索查询

sql - 如何确保依赖于值的引用完整性