【问题标题】:Mysql split a column into to two values(numbers) and search between thoseMysql 将一列拆分为两个值(数字)并在这些值之间进行搜索
【发布时间】:2014-07-23 10:29:06
【问题描述】:

您好,我在 mysql 中遇到了这个问题,我的表如下所示

身份证年 1 1985-1996 2 1990-2000

现在我将收到一个提交的值(两年之间的年份,例如 1990 年)我必须将年份分成两部分,例如 1985 年作为 initVal 和 1996 年 endVal

我尝试了一些对我不起作用的方法

SELECT * FROM cip_finder WHERE model =33 AND('1986' BETWEEN if(locate('_',years)=0,'',SUBSTRING_INDEX(years, '_', 1)) AND if(locate('_',years)=0,'',SUBSTRING_INDEX(years, '_', 1)))


SELECT *,SPLIT_STR(years, '-', 1) AS initVAL,SPLIT_STR(years, '-', 2) AS endVal FROM cpc_finder WHERE model =33 AND('1986' BETWEEN initVal AND endVal)

有没有办法解决这个问题

【问题讨论】:

  • 标准化您的数据。你的意图是搜索两列,所以让你的years 成为yearFromyearTill

标签: php mysql mysqli string-split


【解决方案1】:

同意 Alma Do 的评论...您需要将您的年份列标准化为两个。

尽管如果您仍然无法做到这一点,请使用下面的查询,您将获得预期的输出:

SELECT id, SUBSTRING_INDEX( years , '-', 1) AS initVal, 
REPLACE(years,CONCAT(SUBSTRING_INDEX( years , '-', 1),'-'),'') AS endVal 
FROM cip_finder;

希望有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2012-01-24
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多