【问题标题】:Get the column value by considering multiple delimiters in MySQL and Laravel 5.2通过考虑 MySQL 和 Laravel 5.2 中的多个分隔符来获取列值
【发布时间】:2018-01-30 14:53:27
【问题描述】:
Invoice No

12345/1

789_2

我需要的输出如下

Invoice No

12345

789

请帮助我使用 mysql 和 laravel 5.2 实现上述结果。

提前致谢

【问题讨论】:

    标签: mysql laravel-5


    【解决方案1】:

    在 MySQL 中,我们可以使用SUBSTRING_INDEX 根据分隔符的有无来有条件地取发票的子字符串:

    SELECT
        CASE WHEN invoice_no LIKE '%/%' THEN SUBSTRING_INDEX(invoice_no, '/', 1)
             WHEN invoice_no LIKE '%\\\\%' THEN SUBSTRING_INDEX(invoice_no, '\\', 1)
             WHEN invoice_no LIKE '%\_%' THEN SUBSTRING_INDEX(invoice_no, '_', 1)
             ELSE invoice_no END AS invoice_no_new
    FROM yourTable;
    

    Demo

    【讨论】:

    • 我无法将反斜杠视为分隔符,即 789\2
    • 12345\1 结果为 123451,这不是我需要的答案。
    • @Thilagam 我更新了我的答案。您需要在 LIKE 表达式中双重转义反斜杠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多